Publikoval Michal Kočí dňa 26.3.2005 o 23:12 v kategórii Software
Microsoft od polovice februára ponúka na stiahnutie program Log Parser 2.2 (ďalej len LP). Konečne sa mi podarilo nájsť trochu voľného času a pozrieť sa tomuto programu na zúbky...
LP je progam, ktorý dokáže pracovať s rôznymi typmi logov (a nemusia to byť len obyčajné textové log súbory), pričom na vytiahnutie pre Vás podstatných informácií používate syntax jazyka SQL. LP ponúka niekoľko vstupných formátov, ktorým rozumie, a ktoré sú spracované SQL-Like engine-om do výstupného formátu, ktorých je tiež niekoľko.
Vstupných formátov je približne 20, okrem formátov logov, ktoré produkuje IIS a pozná aj niekoľko textových formátov (CSV, XML, obyčajný textový súbor, ...). Navyše vie pracovať na vstupe aj s registrami systému, event logom, súborovým systémom a pod.
Keď si vyberiete vstupný formát, v nápovede dodávanej s programom si môžete pozrieť, aké polia pre daný formát môžete používať. U súborového systému sú to napríklad polia názov, cesta, dátum vytvorenia ale napríklad aj názov produktu, názov firmy. U event logu sú to polia ako čas zápisu, identifikátor udalosti, typ udalosti a pod. U CSV súborov môžete ako názvy polí použiť názvy z prvého riadku v CSV súbore.
Tak ako si vyberáte vstupný formát, vyberáte si aj výstupný formát. Tých má LP približne 10, napríklad SQL (pre zápis do tabuľky v MS SQL Servery), CSV, XML, CHART (graf vo forme GIF alebo JPEG obrázku; viď príklad na konci) a iné. LP je vlastne konzolová aplikácia, nemá grafické rozhranie, takže výstup si môžete nechať zapísať aj do okna konzoly. Ak by ste však uprednostnili výstup do grafického okna (GUI), LP má aj výstupný formát nazvaný DATAGRID. Pri jeho použití sa Vám s výsledkami Vášho SQL dotazu otvorí klasické windows okno (viď príklad na konci).
Okrem toho, že pri špecifikácii dát, o ktoré máte záujem (napríklad chcete prehľad o súboroch, ale iba o tých, ktoré majú príponu exe alebo dll) používate klauzuly SQL SELECT dotazu, môžete pre vstupné a výstupné formáty použiť aj parametre. Nimi nastavujete dodatočné požiadavky, ktoré bežne v SQL dotaze nemajú miesto. Napríklad pri použití vstupného filtra súborového systému môžete parametrom ovplyvniť maximálnu podadresárovú rekurziu (zanorenie), u CSV súboru môžete parametrom určiť kódovú stránku súboru, u výstupného formátu CHART môžete parametrami nastaviť nadpis grafu, to či majú byť zobrazené hodnoty a pod. Parametrov je u každého filtra docela dosť.
Ako som spomínal, dotaz zadávate vo forme SQL príkazu, je ním samozrejme SELECT. Ten sa viac než dosť podobá na klasický SELECT a teda môžete v ňom používať klauzuly INTO (tou bližšie špecifikujete výstupný formát, napríklad u CHART formátu touto klauzulou zadávaté názov výstupného súboru), WHERE, GROUP BY, ORDER BY, HAVING, ... Navyše má LP pripravených aj niekoľko desiatok funkcií, ktoré sa dajú použiť na prácu s jednotlivými poliami. Napríklad pri vstupnom formáte súborového systému Vám rozhodne príde vhod funkcia na zistenie prípony (EXTRACT_EXTENSION), použiť môžete aj funkcie na prácu s bitmi (BIT_AND, BIT_XOR, ...), konverzné funkcie (TO_INT, TO_STRING, ...), matematické funkcie (DIV, MOD, LOG, SQR, ...) a samozrejme aj agregačné (AVG, COUNT, MAX, MIN, ...).
LP je teda konzolová aplikácia, ktorú ovládate len parametrami v príkazovom riadku. Ovšem, LP do systému nainštaluje aj COM objekty, takže jeho funkcionalitu môžete zapúzdriť z akéhokoľvek programovacieho jazyka, ktorý vie pracovať s COM objektmi (C#, Delphi, ...) ako aj zo skriptovacích jazykov (VBS, JS, ...).
No a aby som nebol taký suchár, prikladám dva jednoduché príklady. Prvý zistí z event logu (Applications) všetky chyby (Errors), zoradí ich podľa dátumu (prvý najnovší) a výstup nechá zobraziť v spomínanom formáte DATAGRID. Príkaz spúšťaný z konzoly vyzerá nasledovne (v konzole je samozrejme text na jednom riadku)
LogParser.exe "SELECT TimeGenerated, Message INTO DATAGRID FROM Application WHERE EventType = 1 ORDER BY TimeGenerated DESC"
A formulár zobrazený programom LP vyzerá takto:
Druhý príklad zistí počet typov súborov (podľa prípony) v adresári c:\windows (bez rekurzie) a zobrazí ich formou gif obrázku (formát CHART). Zobrazí však len tie, kde počet súborov danej prípony je väčší ako 5 a zoradí ich od najčastejších prípon k tým menej častým.
LogParser.exe -i:FS -recurse:0 -values:on -charttype:column3d -charttitle:"Pocet suborov podla pripony" "SELECT TO_UPPERCASE(EXTRACT_EXTENSION(Path)) AS Pripona, COUNT(*) AS Pocet INTO chart.example.jpg FROM c:\windows\*.* WHERE Pripona <> '' GROUP BY Pripona HAVING Pocet > 5 ORDER BY Pocet DESC"
Výsledný GIF obrázok vyzerá nasledovne:
LP je veľmi silný nástroj, mnou menované formáty, parametre a funkcie sú len zlomkom z ich celkového množstva obsiahnutých v LP. LP si s v inštalácii dotiahne aj nápovedu (vo formáte CHM), ktorá je ozaj prehľadná a všetko je veľmi dobre zdokumentované. Takisto si LP nainštaluje aj niekoľko príkladov (JS a VBS scripty, C# program, CPP program, SQL dotazy, ...).
Ak nechceš premeškať príspevky ako je tento, sleduj ma na Twitteri, alebo ak máš RSS čítačku, môžeš sledovať môj RSS kanál.