我有额外字段'foo'的IIS日志。
#Fields: foo date s-sitename ...
foo1 2009-02-15 W3SVC1 ...
foo2 2009-02-15 W3SVC1 ...
结果所有LogParser查询都被破坏了:
logparser -i:IISW3C "SELECT c-ip, s-ip FROM my.log"
Statistics:
-----------
Elements processed: 0
Elements output: 0
Execution time: 0.00 seconds
是否可以通知LogParser这些额外字段,以便它可以解析IIS文件?
答案 0 :(得分:14)
尝试W3C格式(-i:W3C)。
如果这不起作用并且这是一次性分析,您可以创建一个脚本来去除该列。如果这是一项持续的活动,您可能需要考虑使用标准格式,或者至少将额外字段移动到最后。
顺便说一句,LogParser支持custom input formats。
答案 1 :(得分:0)
不了解LogParser,但如果你没有成功,你可以尝试splunk,它似乎很容易处理不同的日志格式。
答案 2 :(得分:0)
使用选项-iHeaderFile来定义您自己的字段。 logparser -h将提供其他信息
答案 3 :(得分:0)
这很容易做到!
只需在字符串周围使用 TRIM 功能即可。这样,您可以在Log Parser Query中键入您想要的任何字符串作为自定义额外字段。
参考:http://logparserplus.com/Functions#function_TRIM
例如,我在此查询中执行此操作(用于检索Average和Max时间):
logparser -i:IISW3C -rtp:-1 -o:NAT -headers:OFF -iw:ON "SELECT TRIM('my-website-custom-extra-column-name.com') AS siteName, TRIM('foo-bar-custom-extra-column-name') AS fooBar, AVG(time-taken) As AverageTimeTaken, MAX(time-taken) As MaxTimeTaken, COUNT(*) As Hits, TO_LOWERCASE(cs-uri-stem) As Uri FROM C:\inetpub\yourwebsite.com\ex*.log TO c:\myOutputParsedLog.txt WHERE (Extract_Extension(To_Lowercase(cs-uri-stem)) IN ('aspx')) GROUP BY TO_LOWERCASE(cs-uri-stem) ORDER BY AverageTimeTaken DESC"