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

これは、サブフォルダーに存在する多くのIISLogを繰り返し処理することを意味します。ここで実行したいのは、このクエリの結果をIPアドレスのログに再度結合し、システムエラーページの前の日時を持つ上位1つの結果を取得することです。

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

たぶん、これはlogparserには多すぎるので、PowerShellに切り替える時間ですか?どんな助けでもありがたいです。

前もって感謝します!

4

1 に答える 1

1

W3C ログ形式を使用する場合、cs(Referer) の追跡と評価を試みることができます。

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
于 2011-01-10T15:27:53.990 に答える