13

追加のフィールド「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ファイルを解析できるようにすることは可能ですか?

4

4 に答える 4

24

W3C 形式 (-i:W3C) を試してください。

これが機能せず、これが 1 回限りの分析である場合は、その列を削除するスクリプトを作成できます。これが進行中のアクティビティである場合は、標準形式の使用を検討するか、少なくとも余分なフィールドを最後に移動することを検討してください。

ちなみに、LogParser はカスタム入力フォーマットをサポートしています。

于 2009-02-15T19:13:44.240 に答える
1

オプション -iHeaderFile を使用して、独自のフィールドを定義します。logparser -h は追加情報を証明します

于 2009-10-23T22:21:18.233 に答える
0

LogParserについてはわかりませんが、うまくいかない場合は、さまざまなログ形式を簡単に処理できるように見えるsplunkを試すことができます。

于 2009-02-15T18:23:53.907 に答える
0

やり方はとっても簡単!

文字列の周りにTRIM関数を使用するだけです。このようにして、任意の文字列をログ パーサー クエリのカスタム エクストラ フィールドとして入力できます。

参考: http: //logparserplus.com/Functions#function_TRIM

たとえば、次のクエリで実行します (平均時間と最大時間を取得するために使用されます)。

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"
于 2016-09-03T22:04:26.603 に答える