Log Parser Query - PullRequest
       34

Log Parser Query

1 голос
/ 31 декабря 2010

Я работаю над получением конкретного отчета из группы журналов IIS, используя Анализатор журнала .В тот момент, когда в веб-приложении возникает непредвиденная ошибка, мы отправляем пользователя на страницу системных ошибок (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-адресе и получить первый результат с датой и временем перед страницей системных ошибок.

Моя проблема в том, что я не могу найти способ сделать соединение.Насколько я понимаю, это невозможно.Кто-нибудь из вас сталкивался с чем-то подобным?Мой SQL не самый лучший, может быть, мне не хватает другого способа сделать это.

Может быть, это слишком много для logparser, время переключиться на powershell?Любая помощь будет оценена.

Заранее спасибо!

1 Ответ

1 голос
/ 10 января 2011

При использовании формата журнала 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
...