REPL LOG
using System;
using System.Collections.Generic;
using System.Text;
using System.Text.RegularExpressions;
using System.Threading;
using CS = System.Console; namespace ConsoleApplication3
{
class Program
{
static void Main(string[] args)
{
CS.ForegroundColor = DefaultForeColor;
CS.BackgroundColor = DefaultBackColor;
CS.Clear();
CS.Title = "日志查询工具";
Msg(LogHelper.HelpText); while (true)
{
var line = CS.ReadLine().ToLower();
if (line == "help")
{
Msg(LogHelper.HelpText);
continue;
} if (line == "cls")
{
CS.Clear();
continue;
} if (line == "ec")
{
LogHelper.IsPro = !LogHelper.IsPro; if (LogHelper.IsPro)
{
Msg("切换为生产环境日志查询...");
}
else
{
Msg("切换为测试环境日志查询...");
}
continue;
} new LogHelper(line).Open(); }
} public static void Msg(string str)
{
Show(str, MessageForeColor);
} public static void Show(string message, ConsoleColor color)
{
CS.ForegroundColor = MessageForeColor;
CS.WriteLine(message);
CS.ForegroundColor = DefaultForeColor;
} public static ConsoleColor DefaultForeColor = ConsoleColor.White;
public static ConsoleColor DefaultBackColor = ConsoleColor.DarkBlue;
public static ConsoleColor MessageForeColor = ConsoleColor.DarkCyan; public class LogHelper
{
public static string HelpText; private const int support = ; public static bool IsPro; public static List<string> KeyList = new List<string> { "xx", "yy", "zz", "" };
public static List<string> TitleList = new List<string> { "可定检查", "创建订单", "提交订单", "中间产品层" }; static LogHelper()
{
HelpText = "k+数字(默认是k1):\n\r ";
for (var i = ; i < TitleList.Count; i++)
{
HelpText += (i + ) + "." + TitleList[i] + "\n\r ";
}
HelpText += "默认会员,协议在数字前加0\n\rd/h+数字(默认是d7):\n\r 1.一天(h是小时)内日志\n\r 2.两天(h是小时)内日志\n\r 以此类推...\n\ro+数字:\n\r 打开ordeidr=数字的日志\n\rr+数字:\n\r 打开roomId=数字的日志\n\ru+卡号:\n\r 开的uid=卡号的日志\n\rc+数字:\n\r 打开cityID=数字的日志\n\rhelp:查看命令\n\rcls:清除屏幕\n\rec切换生产/测试环境";
} private string cmd, o, r, u, c;//o==orderid ,r == roomid,u=uid,c=cityid
private int k, d, h;
public LogHelper(string cmd)
{
this.cmd = cmd.ToLower();
} private int GetNumber(string prefix)
{
var contract = ;
var match = GetStr(prefix);
if (string.IsNullOrEmpty(match)) return ;
if (match.StartsWith(""))
{
contract = ;
}
return Convert.ToInt32(match) + contract;
} private string GetStr(string prefix)
{
Regex reg = new Regex(prefix + @"(\d+)", RegexOptions.Compiled);
return reg.Match(cmd).Groups[].ToString();
} public void Open()
{
k = GetNumber("k");
d = GetNumber("d");
h = GetNumber("h"); o = GetStr("o");
r = GetStr("r");
u = GetStr("u");
c = GetStr("c");
//Msg(d.ToString() + k + h);
string result = string.Empty;
var dateStr = string.Empty;
var key = string.Empty;
var end = DateTime.Now; if (d > )
{
var begin = end.AddDays(-d);
dateStr = getDateStr(begin, end);
}
else if (h > )
{
var begin = end.AddHours(-h);
dateStr = getDateStr(begin, end);
}
else
{
var begin = end.AddDays(-);
dateStr = getDateStr(begin, end);
} if (k > && k < support)
{
key = "key=" + KeyList[k - ];
}
else if (k >= support)
{
key = "key=" + KeyList[k - support];
}
else
{
key = "key=" + KeyList[];
} Msg(string.Format("正在打开{0}{1}日志...", GetLogMsg(), IsPro ? "(生产环境)" : "(测试环境)"));
Thread.Sleep();
//System.Diagnostics.Process.Start("chrome.exe", "http:\\www."+line+".com");
} private string GetLogMsg()
{
var result = string.Empty;
if (d > )
{
result += d + "天内的";
}
else if (h > )
{
result += h + "小时内的";
}
else
{
result += "7天内的";
} if (k > && k < support)
{
result += "会员" + TitleList[k - ];
}
else if (k >= support)
{
result += "协议" + TitleList[k - support];
}
else
{
result += "会员" + TitleList[];
} if (!string.IsNullOrEmpty(o))
{
result += "&" + "orderId=" + o;
} if (!string.IsNullOrEmpty(r))
{
result += "&" + "roomId=" + r;
} if (!string.IsNullOrEmpty(u))
{
result += "&" + "uid=" + u;
} if (!string.IsNullOrEmpty(c))
{
result += "&" + "cityId=" + c;
} return result;
} private string getDateStr(DateTime begin, DateTime end)
{
string tf = "{0}~{1}";
var dformat = "yyyy-MM-dd HH:mm:ss";
return string.Format(tf, end.ToString(dformat), end.ToString(dformat));
}
}
}
}
REPL LOG的更多相关文章
- Windows 2008 R2 域控制器迁移至windows 2016记录
文章参考 https://social.technet.microsoft.com/Forums/zh-CN/21a5f5e9-feee-4454-acad-fd22989d7bed/22495296 ...
- MySQL主从复制邮件报警脚本
#!/bin/shexport PATH=$PATH:/application/mysql/3306/binlogFile=`date +"%Y-%m-%d %H:%M:%S"`_ ...
- Windows DC域控由server08r2升级至server2016测试
测试环境 原DC: csctest.com CSCDC01 192.168.100.1 server08r2 CSCDC02 192.168.100.2 server08r2 要求: 原两台旧主机均更 ...
- go log repl
package main import ( "fmt" "os/exec" "regexp" "strconv" &qu ...
- node.js学习(二)--Node.js控制台(REPL)&&Node.js的基础和语法
1.1.2 Node.js控制台(REPL) Node.js也有自己的虚拟的运行环境:REPL. 我们可以使用它来执行任何的Node.js或者javascript代码.还可以引入模块和使用文件系统. ...
- Node.js之路【第二篇】Nodejs中的pip(NPM)&REPL
什么是NPM 在学Python的时候我们肯定会使用第三方模块或者编写模块供别人使用,我们有一个非常好用的pip来帮我们管理我们的模块包!那么Nodejs重的模块包呢? 对没错就是NPM,他是随同Nod ...
- REPL环境
一.Node的REPL基本操作 REPL(Read-eval-print-loop):交互式解析器 在REPL环境下,可以定义和运行变量.函数.对象. REPL的常用命令: 进入node,即进入了RE ...
- ERROR 1872 (HY000): Slave failed to initialize relay log info structure from the repository
salve复制线程停止,尝试start slave 时报ERROR 1872错误mysql> system perror 1872 MySQL error code 1872 (ER_SLAVE ...
- Node.js系列基础学习----安装,实现Hello World, REPL
Node.js基础学习 简介 简单的说 Node.js 就是运行在服务端的 JavaScript.Node.js 是一个基于Chrome JavaScript 运行时建立的一个平台.Node.js是一 ...
随机推荐
- jquery插件之拖拽
该插件乃本博客作者所写,目的在于提升作者的js能力,也给一些js菜鸟在使用插件时提供一些便利,老鸟就悠然地飞过吧. 此插件旨在实现目前较为流行的拖拽效果,您可以根据自己的实际需求来设置被拖拽元素是否可 ...
- Apache Jmeter发送post请求
下面用Jmeter发送一个post请求, 对应的js代码如下: $("#register_a").click(function() { var name = $("#un ...
- android-ContentProvider
一.理解ContentProvider 为了在应用程序之间交换数据,Android提供了ContentProvider,它是不同应用程序之间进行数据交换的标准API,当一个应用程序需要把自己的数据暴露 ...
- jquery选择器实例说明
选择器 实例 选取 * $("*") 所有元素 #id $("#lastname") id="lastname" 的元素 .class $( ...
- 允许浏览器跨域访问web服务端的解决方案
今天和同事探讨了前后端如何真正实现隔离开发的问题,如果前端单独作为服务发布,势必会涉及到无法直接调用后端的接口的问题,因为浏览器是不允许跨域提交请求的. 所谓跨域访问,就是在浏览器窗口,和某个服务端通 ...
- BizTalk开发系列(六) BizTalk开发简述
现在很多大型企业信息化程度很高,运行中的系统可达到数十乃至上百个.而大部分系统由于建设的时间.开发团队和技术 往往不相同,系统之间的大部分都是独立运行的.随着信息化建设的深入各系统之间的交互需求越来越 ...
- 数据库---MySQL常用函数总结
一.数学函数 数学函数主要用于处理数字,包括整型.浮点数等. ABS(x) 返回x的绝对值 SELECT ABS(-1) -- 返回1 CEIL(x),CEILING(x) 返回大于或等于 ...
- [转]RamDisk导致远程桌面客户端无法启动问题
在一次重启系统后发现无法运行远程桌面客户端,运行后进行连接即报错. 查看日志有AppCrash错误: 错误应用程序名称: mstsc.exe,版本: 6.1.7600.16385,时间戳: 0x4a5 ...
- 【iCore3 双核心板_FPGA】实验二十二:Niosii——固化程序到 EPCS 里
实验指导书及代码包下载: http://pan.baidu.com/s/1c2lyNQS iCore3 购买链接: https://item.taobao.com/item.htm?id=524229 ...
- 【MySQL学习笔记】MySQL权限表
MySQL权限表,控制用户对数据库的访问,存在mysql数据库中,由mysql_install_db初始化,包括user,db,host,tables_priv,columns_priv,procs_ ...