Convertire i log di IIS tramite Log Parser

Log Parser è tool che consente di eseguire query su dati di tipo testo come file di log files, XML e CSV files e su fonti dati quali Event Log, Registry, file system e Active Directory.

Dopo aver eseguito una query è anche possibile esportala e quindi è ad esempio possibile utilizzarlo per estrarre dati dai logs di IIS e renderli compatibil con il formato necessario ad esempio a Webalizer un tool gratuito per generare report di utilizzo di un sito in formato HTML.

Il problema è però che Welalizer gestisce solo le seguenti informazioni date, time, cs-uri-stem, cs-username, c-ip, cs(User-Agent), cs(Referer), sc-status, sc-bytes mentreIIS per default registra logs nel formato W3C.

E’ possibile configurare IIS per registare solo le info che Webalizer gestisce oppure utilizzare Log Parser generare un file di log che contenga solo le info gestite tramite in batch con i seguenti comandi:

Set IDSite=…

Set IISLogsPath=%SystemRoot%\System32\W3SVC%IDSite%

Set StatsPath=F:\Stats\%IDSite%

Set StatsTempPath=F:\Stats\%IDSite%\Temp

Set LogsListFile=%StatsTempPath%\LogsList.txt

Set LogsJoinFile=%StatsTempPath%\LogsJoin.log

Set WebalizerLogFile=%StatsPath%\Logs\Webalizer.log

REM Join dei log del sito IIS

dir /O:N /b %IISLogsPath% > %LogsListFile%

for /f “tokens=*” %%a in (%LogsListFile%) do more %IISLogsPath%\%%a >> %LogsJoinFile%

“%ProgramFiles%\IIS Resources\Log Parser 2.2\LogParser.exe” -i:iisw3c -o:w3c “select date, time, cs-uri-stem, cs-username, c-ip, cs(User-Agent), cs(Referer), sc-status, sc-bytes into %WebalizerLogFile% FROM %LogsJoinFile%

Log Parser volendo consente di generare delle statistiche, per maggiori informazioni si vedano: