2010-12-31 1 views
1

Log parserを使用して、複数のIISログから特定のレポートを取得するために取り組んでいます。 Webアプリケーションで予期しないエラーが発生した瞬間、ユーザーにシステムエラーページ(SystemError.htm)を送信します。ログパーサークエリ

システムエラーページにリダイレクトされる直前のページを知りたい。私はこれがエラー報告/ロギングを行うばかげた方法だと知っていますが、これは私が処理しなければならないものです。

現時点では、システムエラーページで終了したユーザーのIPアドレス、日付、時刻を取得できます。

SELECT c-ip as IPAddress, date as Date, time as Time 
FROM D:\IISLog\*.log 
WHERE cs-uri-stem = '/SystemError.htm' 
ORDER BY c-ip, date, time DESC 

私は、次のようなログパーサーを使用しています:

LogParser.exe -i:IISW3C file:C:\IISLog.sql -q:off -recurse:1 

これは私がサブフォルダに存在するIISLogsの多くを再帰を意味します。私が今やりたいことは、このクエリの結果をIPアドレスのログに再び結合し、システムエラーページの前にdatetimeを持つ上位1つの結果を取ることです。

私の問題は、私が参加する方法を見つけることができないようです。私が見る限り、これは不可能です。あなたの誰かがこのような何かに出くわしたのですか?私のSQLは最高ではない、多分私はそれを行う別の方法がありません。

これはlogparserには多すぎるかもしれないが、powershellに切り替える時間は?どんな助けもありがとう。

ありがとうございます!

答えて

1

あなたはCS(リファラー)を追跡し、評価しようとすることができW3Cログ形式を使用して:

SELECT c-ip as IPAddress, date as Date, time as Time, cs(Referer) as Referer 
FROM D:\IISLog\*.log 
WHERE cs-uri-stem = '/SystemError.htm' 
ORDER BY c-ip, date, time DESC