LogParser (download) je command-line utilita od Microsoftu, kterou můžete použít pro SQL-styl dotazování do libovolného textového log-souboru, resp. i mnoha souborů zároveň. Základní sada podporovaných formátů je úctyhodná: IISW3C, NCSA, IIS, IISODBC, BIN, IISMSID, HTTPERR, URLSCAN, CSV, TSV, W3C, XML, EVT, ETW, NETMON, REG, ADS, TEXTLINE, TEXTWORD, FS a COM.
Já ho používám obvykle pro dotazování IIS Logů a musím říct, že je neuskutečně rychlý. Na mém notebooku Lenovo X1 i7/16GB/SSD je schopen vyřešit následující dotaz do 8.97GB logů za 2min 12sec!
SELECT Date, TO_INT(COALESCE(EXTRACT_VALUE(cs-uri-query, 'id'), EXTRACT_VALUE(cs-uri-query, 'SouborSablonyID'))) AS SouborID, COUNT(*) AS Total FROM '[LOGFILEPATH]' WHERE (cs-uri-stem = '/business/sablony/soubor-partner.aspx') OR (cs-uri-stem = '/business/sablony/soubor.aspx') GROUP BY Date, SouborID ORDER BY Total DESC
Výstup do databáze
LogParser umí nejenom vyhodnocovat dotazy, ale můžete jeho výsledky nasměrovat i do databáze či mnoha dalších výstupních formátů (CSV, XML, …), např.
C:\Program Files (x86)\Log Parser 2.2>logparser "SELECT * INTO iisLogs FROM c:\temp\logs\*.log" -i:iisw3c -o:SQL -server:localhost -database:MyLogs -username:sa -password:sa -createTable: ON
Poznámka: Pokud chcete čistý import logů do DB (bez filtrování, projekce či agregací) zvažte použití Import Flat File… wizarda z SQL Management Studia, který může být ještě rychlejší. Pokud použijete LogParser, mrkněte na volbu transactionRowCount k seskupení uploadovaných dat do menšího množství transakcí (např. -transactionRowCount:-1
pro jedinou transakci).
Uživatelské rozhraní?
LogParser sám je command-line utilita. Nabízí dále COM API, které můžete volat ze svých aplikací (asi ne). Nicméně právě toto API bylo využito autory několika uživatelských rozhraní, které vám při občasném využití LogParseru usnadní život:
- Microsoft LogParser Studio (download) je přímo od Microsoftu a kromě GUI přináší i mnoho (181) připravených šablon dotazů pro různé typy logů.
- Log Parser Lizard GUI je bezplatná varianta (s placenou Pro edicí) vytvořená mimo Microsoft, která vypadá celkem schopně. Nezkoušel jsem, ale pokud byste to potřebovali dennodenně, asi to může být zajímavé.
Reference
Následující odkazy se mohou při seznamování LogParserem hodit:
- How to analyse IIS logs using LogParser / LogParser Studio [IIS Field Readiness]
- LogParser Functions [logparserplus.com]
- Analyze your IIS Log Files – Favorite Log Parser Queries [CarlosAg]
- Log Parser Rocks! More than 50 Examples! [Mike Lichtenberg]
- LogParser Forums [forums.iis.net]
- LogParser Performance Inserting into SQL Server