前段时间做了一个简易的Windows日志分析工具(主要针对Windows系统日志SysEvent.Evt这个文件),主要是使用了Log Parser 2.2和MSchart控件,在此和大家分享一下!
首先是Log Parser 2.2,关于它的介绍我就不多说了,下载地址:http://www.microsoft.com/en-us/download/details.aspx?id=24659
第一步是安装Log Parser 2.2,然后新建一个C#窗体项目,在资源管理器中选中“引用”右键“添加引用”,选择Log Parser 2.2安装目录下的“LogParser.dll”
然后确定返回主窗体页面,添加一个button和一个dataGridView控件,在button的Click事件写入如下代码:
private void button1_Click(object sender, EventArgs e)
{
string sql = @"SELECT EventID, TimeGenerated, SourceName, Message FROM E:\SysEvent.Evt";//此为系统日志文件路径
DataTable dt = readFromEvt(sql);
writeToDataBase(dt);
dataGridView2.DataSource = dt;
MessageBox.Show("读取完毕!");
}
public DataTable readFromEvt(string sql)
{
try
{
DataTable datat = new DataTable();
datat.Columns.Add("事件ID", typeof(string));
datat.Columns.Add("日期", typeof(string));
datat.Columns.Add("来源", typeof(string));
datat.Columns.Add("描述", typeof(string));
// Instantiate the LogQuery object
LogQuery oLogQuery = new LogQuery();
// Instantiate the Event Log Input Format object
EvtInputFormat oEvtInputFormat = new EvtInputFormat();
// Set its "direction" parameter to "BW"
oEvtInputFormat.direction = "BW";
// Create the query
string query = sql;
// Execute the query
LogRecordSet oRecordSet = oLogQuery.Execute(query, oEvtInputFormat);
while (!oRecordSet.atEnd())
{
var itemData = oRecordSet.getRecord();
DataRow dr = datat.NewRow();
dr["事件ID"] = itemData.getValue("EventID").ToString();
dr["日期"] = itemData.getValue("TimeGenerated").ToString();
dr["来源"] = itemData.getValue("SourceName").ToString();
dr["描述"] = itemData.getValue("Message").ToString();
datat.Rows.Add(dr);
oRecordSet.moveNext();
}
// Close the recordset
oRecordSet.close();
return datat;
}
catch (System.Runtime.InteropServices.COMException exc)
{
MessageBox.Show("Unexpected error: " + exc.Message);
return null;
}
}
至此已经完成了SysEvent.Evt日志文件内容的读取,这里是读取到一个DataTable并且绑定到dataGridView控件上,其中上面代码中还有一个函数writeToDataBase(dt);主要是将这些数据写到数据库中。
接下来是MSchart,VS2010自带这个控件,具体在工具箱数据栏下,名字是“Chart”,如果是VS2008的话还需要下载安装一下,下载地址:http://www.microsoft.com/en-us/download/details.aspx?id=14422,安装好以后,在“工具箱”右键“选择项”,“浏览”在Microsoft Chart Controls安装目录把Assemblies下的dll都添加进去(实际只用System.Windows.Forms.DataVisualization.dll),确定返回工具箱在数据栏下就可以看到“Chart”控件,拖拽一个到窗体上,然后再加入一个button,在button的Click事件写入如下代码:
private void button3_Click(object sender, EventArgs e)
{
DB db = new DB();
string sql = @"select top 5 EventID,count(*) as Num from EvevtLog group by EventID order by count(*) desc";
DataTable dt = db.GetDataTable(sql);
dataGridView2.DataSource = dt;
// Set series chart type
Chart1.Series[0].ChartType = SeriesChartType.Bar;
// Show as 3D
Chart1.ChartAreas[0].Area3DStyle.Enable3D = true;
// Draw as 3D Cylinder
Chart1.Series[0]["DrawingStyle"] = "Cylinder";
//Chart1.BackColor = Color.Azure; //图表背景色
Chart1.Titles.Add("事件"); //图表标题
//设置图表的数据源
Chart1.DataSource = dt;
//设置图表Y轴对应项
Chart1.Series[0].YValueMembers = "Num";
//Chart1.Series[1].YValueMembers = "Volume2";
//设置图表X轴对应项
Chart1.Series[0].XValueMember = "EventID";
Chart1.Series[0].IsValueShownAsLabel = true; //是否显示数据
Chart1.Series[0].IsVisibleInLegend = false; //是否显示数据说明
Chart1.Series[0].MarkerStyle = MarkerStyle.Circle; //线条上的数据点标志类型
Chart1.Series[0].MarkerSize = 8; //标志大小
Chart1.ChartAreas[0].AxisX.LineColor = Color.Blue; //X 轴颜色
Chart1.ChartAreas[0].AxisY.LineColor = Color.Blue; //Y 轴颜色
Chart1.ChartAreas[0].AxisX.LineWidth = 2; //X 轴宽度
Chart1.ChartAreas[0].AxisY.LineWidth = 2; //Y 轴宽度
Chart1.ChartAreas[0].AxisY.Title = "事件出现频率"; //Y 轴标题
//绑定数据
Chart1.DataBind();
}
我这里面db.GetDataTable(sql);是从数据库里抽取数据出来展示,各位其实可以按需选择,关于展示部分,Chart控件很强大,我这里只做了一个统计展示的例子,其他的各位可以深入研究一下,最后看一下效果。
分享到:
相关推荐
LogParser2.2 + LogParserLizard 可视化工具
LogParser 2.2安装文件LogParser 2.2安装文件LogParser 2.2安装文件
Log Parser 2.2 教程.doc
Log Parser 2.2如何运作,windows提供的搜索数据的利器,,尤其对于iis等的报表,事件日志提供了一个可行的快速查看方法。
LogParser,是目前的最新版本,LOsparser是一个日志文件分析的简单又强大工具;应用于windows系统,希望对大家有帮助,谢谢!
LPSV2.D2 是 Log Parser 2.2 的 GUI
日志分析工具LogParserLizardSetup.msi,LogParser.msi,visual parser
Log Parser Lizard 基于log parser的可视化工具 支持sql语法,可视输入各种图表.
Log Parser 的工具可以专门解析IIS日志,我们可以用它来查看日志中的信息,Log Parser支持将解析结果以多种格式导出(csv,tsv,及sqlserverDB)
LogParser 是一个命令行工具,可以通过SQL 语句对日志进行分析统计
IIS日志分析工具 LogParserLizard,包里面已经带了LogParser,不需要另外下载。 先安装LogParser,再安装可视化分析工具LogParserLizard。
超好用的IIS日志查看工具IISLog,可以像使用SQL语句一样搜索IIS请求日志, LogParser
LogParser导入log数据至数据库
LogParser IIS分析工具以及使用教程。 通俗易懂的使用说明。
写了个基于.net 4.0的LogParser Windows日志一键分析小工具。所以在使用得时候需要在相同目录放入LogParser.exe即可,使用得时候记得管理员权限运行 可以快速的进行一些日志分析,后续也会慢慢的进一步进行更新。...
运用sql语句检索系统日志,文件。进行塞选分析,输出你想要的信息。
Parser all logs txt files
Log Parser Lizard