Log Parser是微软公司出品的日志分析工具,它功能强大,使用简单,可以分析基于文本的日志文件、XML 文件、CSV(逗号分隔符)文件,以及操作系统的事件日志、注册表、文件系统、Active Directory。它可以像使用 SQL 语句一样查询分析这些数据,甚至可以把分析结果以各种图表的形式展现出来。

   起初接触log parser 是在我做本科毕业设计时。那会儿我选择的课题是对VOD中用户行为的分析与建模。这当然得对服务器端的日志文件进行分析了。为了方便,我直接对学校的影视在线VOD的日志分析的。总的大小接近20多个G(一年左右)。对此,若用SQL Sever来整,还是停烦的,而且自己用的是体验版,只能最大支持到4G。这时候,师兄推荐我试试微软出的一个命令行的小软件Log Parser。至今,我用它也快半年多了。对它有了不少的体会。

一般的命令行的查询应用,应该属于入门级的了。它的强大之处在于与C#的结合使用来达到命令行所完不成的工作。(这部分将在下篇讲述)

入门级应用:(多查看Log Parser 帮助文件,多练习,就会熟练了)

Log Parser 最常见的应用之一是:在一组特定的数据中,搜索特定的信息。想象一下您正在管理一个 IIS 网站,并且被告知,有些用户发现一些未指定的页需要很长的执行时间。您可能想查明的第一件事就是:究竟是哪些页需要如此长的执行时间。需要通过记事本打开 IIS 日志文件,查看数百万行日志条目吗?我可不这么认为。 假如您将 IIS 日志存储在 SQL 数据库中,您可能想运行一个查询,来找出运行时间超过 10 秒钟的页——如果您真的这么做了,那么可能就不要 Log Parser——至少对于这个问题是这样。要是您没有把日志保存在 SQL 数据库中,又该怎么办呢?在这种情况下,您可以使用 Log Parser 分析 IIS 日志文件,查明哪些页所需的执行时间超过了 10 秒钟,并将结果显示在控制台窗口中。

具体方法如下。假定 IIS Web 服务器以 W3C 扩展的日志格式记录日志,而您使用 IISW3C 输入格式,分析 IIS 日志文件。

LogParser.exe 为可执行文件,后跟一个使用 SQL 结构的语句参数进行查询。

 

在我对日志进行分析时,因为有很多天的日志,我不可能挨个的对每个文件进行分析。有时候,当我想抽取某几个属性并将其输入到另外的文件夹下并保持文件名不变。这时候可以在命令行中使用较多的是将批处理命令和logparser 结合使用,那怎是一个爽字了得啊。

 

实例如下:

先cd到待处理的文件夹下(此文件夹包含了你要处理的多个日志文件),再输入你的命令:

-------------

E:\Data>for %c in (*) do (logparser -i:w3c -o:w3c file:c:\test.sql?input=%c)

------------

test.sql文件内容如下:

------------
select 
     date,cs-uri-stem,c-playerid 
into
    D:\data\%input%
from
    E:\Data\%input%

------------

这里也体现了logparser的支持变量输入的功能。

 

对它的简单介绍就这么多了,下篇将讲下如何将logparser 如何和C#结合来进一步的对日志进行深层次的分析。