SQL Server administration and T-SQL development, Web Programming with ASP.NET, HTML5 and Javascript, Windows Phone 8 app development, SAP Smartforms and ABAP Programming, Windows 7, Visual Studio and MS Office software
Development resources, tutorials, tools and downloads for SQL Database Programmers, Developers, Windows and Office Users

Log Parser 2.2 ve Windows Event Logları

Log Parser ile pek çok formattaki log dosyaları üzerinde işlemler yapmak mümkün. Örneğin log dosyaları içindeki bilgiler parse edilerek istenilen kriterlere uygun olan kayıtları belirlemek için aynen bir sql cümleciği çalıştırıyor gibi sorgular yazabilirsiniz. Veya html formatında raporlar tasarlayabilir ve bu raporlarınızın içeriğini yine log dosyaları üzerinde çalışması için hazırladığınız sql cümleciği vasıtası ile sağlayabilirsiniz. Benzer şekilde Log Parser sayesinde log verileriniz üzerinden grafikler de elde edebilirsiniz.

Log Parser pek çok log dosyası formatını destekler. Bu formatlardan bazıları çok tanıdık gelecektir. Bunlardan bir kısmını IISW3C, CSV, TSV, XML, W3C, EVT, FS, REG, ADS ve NETMON formatlarıdır. Log Parser tarafından desteklenen dosya formatlarının tümünü içeren listeyi Log Parser Help dökümanında Input Formats konu başlığı altında bulabilirsiniz.

Log Parser uygulamalarına giriş aşamasında Windows Event Logları ve bu logların yedeklenmiş dosyaları üzerinde örnekler ile çalışacağız.





Log Parser uygulaması önerilen kurulum ayarları ile "C:\Program Files\Log Parser 2.2" dizinine kurulacaktır.

Kurulum dizinine giderek LogParser komutunu çalıştırdığınızda aşağıdaki gibi bir görüntü ile karşılaşacaksınız.

LogParser

Bu ekranda Log Parser uygulamasının kullanımı ile ilgili ipuçlarını bulabilirsiniz.

Örneklerimizi Windows Event Viewer uygulaması üzerinde oluşturacağımız için Administrative Tools altından Event Viewer kısa yolu loglara düşmüş kayıtları inceleyerek yazımıza başlayabiliriz.

Event Viewer

Log Parser açısından baktığımızda buradaki görüntüyü bir log veritabanı gibi düşünebiliriz. Bir (Local) instance'ımız var. Gerektiğinde başka bir log veritabanına (veya instance'a) aşağıdaki ekranda görüldüğü gibi başka bir bilgisayara bağlanarak ulaşabiliriz.

Event Viewer

Event Viewer veritabanımızda üç tablomuz olduğunu varsayabiliriz. Bu tablolar "Application Log", "Security Log" ve "System Log" tablolarıdır. Her bir tablomuz birbirinin aynı özelliklere sahiptir. Ve bu üç tablonun kolonları da birbirinin aynıdır.

Tablomuzda bulunan kayıtlarımıza ait kolonlar ile ilgili açıklamayı ve bir event kaydını aşağıdaki gibi görsel olarak incelersek be benzetme daha iyi anlaşılacaktır.

ComputerName : Olayın gerçekleştiği bilgisayarın adı
Data : Olay ile ilgili binary veri
EventCategory : Olayın dahil edilebileceği kategoriye verilmiş ayırtedici numara
EventCategoryName : Olayın dahil edilebileceği kategorinin adı
EventID : Olayın ID bilgisi
EventLog : Event Log'un adı veya bu kaydı içeren Event Log yedek dosyasının adı
EventType : Log kaydını içeren olay ile ilgili olay tipine verilmiş ayırt edici numara
EventTypeName : İlgili log kaydının tipinin adı
Message : Olay log kaydı ile ilgili açıklayıcı metin
RecordNumber : Event Log dosyası içinde bu olayın indeks numarası
SID : Bu log kaydı ile ilişkilendirilmiş Security Identifier
SourceName : Bu olayı meydana getiren kaynak
Strings : Olay ile ilgili metin formatındaki bilgiler
TimeGenerated : Olayın gerçekleşme zamanı bilgisi
TimeWritten : Olayın Log dosyasına yazıldığı zaman bilgisi

Event Properties

Yeri gelmişken söylemekte fayda var. Event Log'larınız arasında göreceğiniz kayıtlar ile ilgili açıklayıcı bilgilere http://www.eventid.net adresindeki EventID.NET sitesinden ulaşabilirsiniz.

Örnek 1:

İlk örneğimiz lokal makinadaki Application Event Log 'larını gerçekleşme zamanları dikkate alınarak en yeni olan kayıt ilk olmak üzere bir metin dosyaya yazdırmak olsun.
İhtiyacımız olan veriyi toplayacak sorgumuz "SELECT TimeGenerated, SourceName, EventCategoryName, Message FROM Application" sorgusudur.
Burada gerekli olan bazı alanları SELECT ifademiz içine aldık.
FROM kısmında ise lokaldeki bilgisayarın Event Loglarından Application Log tablosunu ifade eden "Application" var.

C:\Program Files\Log Parser 2.2 > LogParser "SELECT TimeGenerated as EventTime, SourceName as Source, EventCategoryName as Category, Message INTO Application2.txt FROM Application" -direction:BW

"INTO Application2.txt" ifadesi ile sorgu sonucunda dönecek kayıtları çalışma dizinimiz altındaki Application2.txt metin dosyasına kaydedilmesini istediğimi Log Parser 'a bildiriyoruz.

Event logu tipindeki girdi tipleri için kullanılabilecek "direction" parametresine "BW" değerini geçerek kayıtların tarih sırası ile yeniden eskiye sıralanmasını sağlıyoruz.

Bu script çalıştırılarak elde edilecek olan metin dosyasından ilk on kaydı aşağıda listeledim.

 

EventTime Source Category Message
------------------- ----------- -------- --------------------------------------------------------------------------------------------------------
2005-03-28 09:05:25 Schedule and Delivery Processor Activation The ReportServer service has been activated.
2005-03-28 09:05:15 SQL Server Report Service None Service started successfully.
2005-03-28 09:05:08 MSSQLSERVER Server 17052 : Recovery complete.
2005-03-28 09:05:06 Microsoft Search Search Service The Search service has started.
2005-03-28 09:04:45 DXDebug None The description for Event ID 0 in Source "DXDebug" cannot be found. The local computer may not have the necessary registry information or message DLL files to display messages from a remote computer
2005-03-28 09:04:43 UPHClean None User profile hive cleanup service version 1.5.5.21 started successfully.
2005-03-28 09:04:36 MSSQLSERVER Server 17126 : SQL Server is ready for client connections
2005-03-28 09:04:36 MSSQLSERVER Server 19013 : SQL server listening on TCP, Shared Memory, Named Pipes.
2005-03-28 09:04:34 MSSQLSERVER Server 19013 : SQL server listening on 127.0.0.1: 1433.
2005-03-28 09:04:34 MSSQLSERVER Server 19013 : SQL server listening on 190.90.190.90: 1433.

Örnek 2:

Şimdiki örnek başka bir makina üzerindeki loglara ulaşarak olayın kaynağına göre filtreleme yapacağımız bir örnek. Bu örnek için oluşturacağımız FROM ifadesinde daha önce yeralan "Application" yerine "FROM \\KodYaz\Application" benzeri \\MakinaAdi\Application şeklindeki kaynak yeralacaktır.

C:\Program Files\Log Parser 2.2>logparser "SELECT TimeGenerated as EventTime, SourceName as Source, EventCategoryName as Category, Message INTO Application3.txt FROM \\KodYaz\Application WHERE SourceName = 'MSSQL$KODYAZ '" -direction:BW

Sorgu cümleciğimizin WHERE kısmı içerdiğini ve SourceName alanı için belirli bir değere eşit olanları filtreleyecek şekilde oluşturulduğunu görebilirsiniz.

Bu sorgumuzun sonuçlarını yazdırdığımız metin dosyasından örnek satırları aşağıya ekledim.

EventTime Source Category Message
------------------- ---------------- -------- ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
2005-03-03 18:07:41 MSSQL$KODYAZ Server 19013 : SQL server listening on 199.99.9.99: 2386.
2005-03-03 18:07:41 MSSQL$KODYAZ Server 17834 : Using 'SSNETLIB.DLL' version '8.0.818'.
2005-03-03 18:07:38 MSSQL$KODYAZ Server 17125 : Using dynamic lock allocation. [2500] Lock Blocks, [5000] Lock Owner Blocks.
2005-03-03 18:07:38 MSSQL$KODYAZ Server 17124 : SQL Server configured for thread mode processing.
2005-03-03 18:07:37 MSSQL$KODYAZ Server 17162 : SQL Server is starting at priority class 'normal'(4 CPUs detected).
2005-03-03 18:07:37 MSSQL$KODYAZ Server This instance of SQL Server last reported using a process id of 7092 at 3/3/2005 3:01:36 PM (local) 3/3/2005 1:01:36 PM (UTC).
2005-03-03 18:07:37 MSSQL$KODYAZ Server 17104 : Server Process ID is 2951.
2005-03-03 18:07:37 MSSQL$KODYAZ Server 17052 : Microsoft SQL Server 2000 - 8.00.818 (Intel X86) May 31 2003 16:08:15 Copyright (c) 1988-2003 Microsoft Corporation Enterprise Edition on Windows NT 5.0 (Build 2195: Service Pack 4)
2005-03-03 15:01:25 MSSQL$KODYAZ Server 17147 : SQL Server terminating because of system shutdown.
2005-03-03 14:08:01 MSSQL$KODYAZ Server 8128 : Using 'xpstar.dll' version '2000.80.760' to execute extended stored procedure 'xp_instance_regread'.

Örnek 3:

Bu örnekte ise basitçe Log Parser yardımıyla Application Event loglarından seçtiğimiz log kayıtlarını SourceName bilgisine göre gruplayarak .tsv dosyalarına kaydetmiş oluyoruz. TSV uzantısı "tab-separated values" yani tab ile ayrılmış değerleri ifade etmektedir. Burada önemli bir nokta Log Parser için verilen girdi sorgu cümleciğinin INTO kısmında yatmaktadır. App_*.tsv kullanımı ile birden fazla .tsv dosyasının oluşturulduğunu gözlemleyebiliriz.

C:\Program Files\Log Parser 2.2>logparser "SELECT SourceName as Source, EventCategoryName as Category, Message INTO App_*.tsv FROM Application" -direction:BW

Yukarıdaki ifadenin çalıştırılması ile elde edilen .tsv dosyalarını aşağıda görebilirisiniz.

logparser

Bu dosyaların isimlerinden önemli bir ipucu yakalayabiliriz. SELECT ifadesinde INTO kısmında verdiğimiz App_*.tsv içinde yeralan * ibaresinin yerini yine SELECT cümlesinde ilk seçtiğimiz SourceName kolonundaki değerler almıştır. Bu dosyaların içlerine bakarsak dosyalara Log Parser tarafından yazılmış log kayıtlarına ait kolon bilgileri arasına SELECT cümlesinde belirtmiş olmamıza rağmen SourceName değerlerinin olmadığını göreceğiz.

Örneğin App_SQL Server Report Service.tsv dosyası içindeki kayıtlar aşağıdaki gibidir.

Category Message
None Service started successfully.
None Service started successfully.

App_Microsoft Search.tsv dosyası içindeki application log kayıtları da aşağıdaki gibidir.

Category Message
Search Service The Search service has started.
Search Service The Search service has started.

 

Aşağıdaki Log Parser komut satırı ile de EventId bilgisi bazında gruplanmış ve App_[EventId değeri buraya gelecek].tsv şeklinde isimlendirilmiş dosyalar elde edeceğiz.

C:\Program Files\Log Parser 2.2>logparser "SELECT EventId, TimeGenerated as EventTime, SourceName as Source, EventCategoryName as Category, Message INTO App_*.tsv FROM Application" -direction:BW

Örneği çalıştırırken elde ettiğim dosyalardan birisi olan App_11728.tsv dosyasının içeriğini aşağıya yazdım.

EventTime Source Category Message
2005-03-21 01:11:11 MsiInstaller None Product: SmartFTP -- Configuration completed successfully.
2005-03-01 11:41:06 MsiInstaller None Product: Microsoft SQL Server 2000 Reporting Services Developer Edition -- Configuration completed successfully.
2005-03-01 11:38:57 MsiInstaller None Product: Microsoft SQL Server 2000 Reporting Services Developer Edition -- Configuration completed successfully.
2005-03-01 11:36:26 MsiInstaller None Product: Microsoft SQL Server 2000 Reporting Services Developer Edition -- Configuration completed successfully.
2005-02-25 09:07:14 MsiInstaller None Product: Microsoft Office Access 2003 -- Configuration completed successfully.
2005-02-16 18:00:22 MsiInstaller None Product: ComponentArt Web.UI 2.1 for ASP.NET -- Configuration completed successfully.
2005-02-16 17:47:50 MsiInstaller None Product: ComponentArt Web.UI for ASP.NET -- Configuration completed successfully.

Burada SELECT ile çektiğim EventId değerini göremiyorum. Bu bilgi bu dosyanın ismi oluşturulurken kullanıldı. TimeGenerated kolon adı yerine SELECT içinde verdiğim alias 'ı yani EventTime metnini kolon adı olarak görüyorum.

 

Örnek 4:

Application Event loglarındaki kayıtları SourceName değerlerine göre gruplayarak bu grubun toplama göre yüzde kaçını oluşturduğunu hesaplayarak listeleyen kodu aşağıda bulabilirsiniz.


C:\Program Files\Log Parser 2.2>LogParser "SELECT SourceName, MUL(PROPCOUNT(*), 100.0) AS Percent INTO Application5.txt FROM Application GROUP BY SourceName ORDER BY Percent DESC"

Elde edilecek sonuçlara örnek olarak aşağıdaki değerleri inceleyebiliriz.

Bize bu değerleri sağlayab iki Log Parser fonksiyonu var. Bunlardan birisi PROPCOUNT() fonksiyonu.
PROPCOUNT birazda Propotional Count yerine kullanılan bir kısaltma gibi.
Çünkü yaptığı da aslında orantısal olarak log kayıtlarının toplamlarını bulmak.
Tabiiki GROUP BY ifadesi burada önemli bir artı sağlıyor.
Çünkü GROUP BY SourceName kullanılarak log kayıtları SourceName bazında grouplanıyor, ardından PROPCOUNT(*) fonksiyonu ile bu gruplara dahil kayıtların sayıları toplam sayıya göre oranlanarak belirli bir değere ulaşılıyor.
Ancak bu değeri yüzde (%) cinsinden ifade etmek için de bu sayıyı 100 ile çarpmak gerekiyor.
Bunu da bize MUL() fonksiyonu sağlıyor.
MUL fonksiyonu parametre olarak çarpılacak değeri ve katsayıyı girdi olarak bekliyor.
Eğer GROUP BY kullanmadan PROPCOUNT(*) ile tüm logların orantısal toplamını bulmaya kalkarsak tek satırda 1 değerini elde ederiz. Bu da %100'ü ifade ediyor zaten.

SourceName                            Percent 
------------------------------- ---------
MSSQLSERVER                       58.648288
UPHClean                                   5.113384
LoadPerf                                     4.802134
MSSQLServerOLAPService       3.823922
mnmsrvc                                     3.823922
Microsoft Search                        3.779458
DXDebug                                   3.779458
SQL Server Report Service         2.623388
Schedule and Delivery Processor 2.401067
NIINST32                                 2.178746
SourceName                                Percent 
---------------------------------- --------
MSSQLServer                            1.778568
Userenv                                      1.689640
SceCli                                        1.600711
MsiInstaller                                 1.556247
Report Server                             0.533570
Microsoft Office 11                     0.266785
ASP.NET 1.1.4322.0                 0.266785
PlugPlayManager                         0.222321
SQLSERVERAGENT                0.222321
Enterprise Library Instrumentation 0.177857
SourceName                            Percent 
--------------------------------- --------
FTPCtrs                                          0.177857
Microsoft Internet Explorer              0.133393
MSDTC                                          0.133393
Microsoft Development Environment 0.088928
TlntSvr                                             0.088928
Winlogon                                         0.044464
Active Server Pages                         0.044464

Örnek 5:

Belirli bir tarihten sonra meydana gelen Application Event loglarını da aşağıdaki Log Parser komut satırı ifadesi ile elde edebiliriz.

C:\Program Files\Log Parser 2.2>LogParser "SELECT TimeGenerated, SourceName, Message INTO Application6.tsv FROM Application WHERE TimeGenerated > '2005-03-28 00:00:00' ORDER BY TimeGenerated DESC"

İki tarih arasında meydana gelen Application Event loglarındaki kayıtları da aşağıdaki Log Parser ifadesi ile elde edebilirsiniz.

C:\Program Files\Log Parser 2.2>LogParser "SELECT TimeGenerated, SourceName, Message INTO Application7.tsv FROM Application WHERE TimeGenerated > '2005-03-27 00:00:00' AND TimeGenerated < '2005-03-28 00:00:00' ORDER BY TimeGenerated DESC"

Örnek 6:

Tüm Application Evet Loglarınız arasında Description değeri içinde belirli bir ifade geçen kayıtların peşindeyseniz SELECT ifadenizi aşağıdaki gibi kurabilirsiniz.

C:\Program Files\Log Parser 2.2>LogParser "SELECT TimeGenerated, SourceName, Extract_Token(Strings,1,'|'), Message INTO Application8.tsv FROM Application WHERE TimeGenerated > '2005-03-20 00:00:00' AND Extract_Token(Strings,1,'|') LIKE '%xpstar%' ORDER BY TimeGenerated DESC"

Bu örnekte yeni kullandığımız Extract_Token ve LIKE fonksiyonlarını görüyoruz. Önce pek çoğumuzun sql sorgularından aşina olduğu LIKE ile başlayalım.Bir kolonun veya değerin içinde bir metin parçası arıyorsak LIKE kullanabiliriz. % kullanımı ile birleştirerek yapılan aramalarda % herhangi bir karakter katarını ifade eder. Bunlara boş bir metin dizisi de dahildir. Kısaca LIKE '%xpstar%' kullanımı ile içinde "xpstar" geçen değerleri aradığımızı belirtiyoruz.

Extract_Token fonksiyonu ise 3 parametre almaktadır. İlk girilen parametreyi son girilen parametredeki değere göre parçalara ayırarak 0'dan başlayan bir indeksleme yöntemi ile ikinci girilen parametrenin ifade ettiği sıradaki kaydı geriye döndürür.

Event Loglarında yeralan Strings alanı "|" ile birleştirilmiş metin dizilerinden oluşan bir alandır."|" ile parçalara ayrıldığında 1 numaralı indeksteki değer de o olay ile ilgili açıklamadır.

Extract_Token(Strings,1,'|') LIKE '%xpstar%' ile Event Log kayıtlarında Description yani tanım alanında içinde "xpstar" geçen kayıtları elde etmiş olduk. Sonuçları yazdığımız .tsv dosyasının içeriği aşağıdadır.

TimeGenerated SourceName EXTRACT_TOKEN(Strings, 1, '|') Message
2005-03-28 15:14:38 MSSQLSERVER Using 'xpstar.dll' version '2000.80.760' to execute extended stored procedure 'sp_MSgetversion'.
8128 : Using 'xpstar.dll' version '2000.80.760' to execute extended stored procedure 'sp_MSgetversion'. 
2005-03-28 10:59:18 MSSQLSERVER Using 'xpstar.dll' version '2000.80.760' to execute extended stored procedure 'sp_MSgetversion'.
8128 : Using 'xpstar.dll' version '2000.80.760' to execute extended stored procedure 'sp_MSgetversion'. 

Örnek 7:

Application Event loglarındaki kayıtları SourceName değerlerine göre gruplayarak yüzdesini hesaplayabilir ve bu değerleri bir dosyaya yazdırabilirsiniz. Bu işlemi 4. örneğimizde yapmıştık. Aynı zamanda Log Parser 2.2 komut satırında INTO ifadesinden sonra bir imaj formatı belirtirseniz bu değerleri bir grafik gösterimde de elde etmiş olursunuz. 

C:\Program Files\Log Parser 2.2>LogParser "SELECT SourceName, MUL(PROPCOUNT(*), 100.0) AS Percent INTO Application9.gif FROM Application GROUP BY SourceName ORDER BY Percent DESC"

" INTO Application9.txt" veya " INTO Application9.tsv" yerine " INTO Application9.gif" kullarak aşağıdaki grafiği elde etmiş olduk.

logparser

 


Application Event loglarında yeralan kayıtları SourceName değerlerine göre gruplayıp yüzdelerini hesaplayarak grafik olarak göstermek için aşağıdaki Log Parser komut satırını da kullanabiliriz.

C:\Program Files\Log Parser 2.2>LogParser "SELECT SourceName, MUL(PROPCOUNT(*), 100.0) AS Percent INTO Application10.gif FROM Application GROUP BY SourceName ORDER BY Percent DESC" -chartType:PieExploded3D -chartTitle:"Event Source"

Elde edeceğimiz sonuç aşağıdaki gibi bir imaj dosyası olacaktır.

Bu komut satırında iki yeni Log Parser komutları parametresi kullandık.
Bunlar chartType ve chartTitle parametreleri.
Çıktının hangi grafik tipinde olmasını istediğinizi belirttiğiniz bu parametrenin olası onlarca değeri arasında bazıları :
Line, Line3D, Bar3D, Column3D, Pie3D, Area, StockHLC grafik tipleridir.
Aşağıdaki komutu kullanarak tüm grafik tiplerine ulaşabilirsiniz.

C:\Program Files\Log Parser 2.2>LogParser -h -o:CHART

chartTitle parametresi ile de grafik gösterimin başlığını bildirmiş oluyorsunuz.
Aşağıdaki gösterimdeki "Event Source" başlığı gibi.

 

Log Parser chartTitle

 

Örnek 8:

Windows Event Loglarını kullanarak Log Parser 2.2 kullanımına giriş yaptığımız bu yazının son örneğini HTML rapor formatında çıktı almak oluşturacak.

Önce raporumuzun neyi içereceğini belirleyerek başlayabiliriz. Log kayıtlarındaki SourceName değerine göre gruplayarak bu grupların yüzdelerini raporumuzda görmek isteyelim.

Sonra da raporumuzun nasıl görünmesini istediğimizi belirleyelim.

Basitçe bir rapor başlığı ve değerlerin neyi ifade ettiklerini açıklayan kolon başlıkları yanında bir tablo içinde kayıtların sıralanmasını istediğimizi varsayalım. Ve hemen bir html şablon dökümanı hazırlayalım.

Bu şablonda önemli olan Log Parser için anlamlı ifadeleri kullanarak istediğimiz sonucu elde edebilmek. Bu ifadeler şunlardır: <LPHEADER>......</LPHEADER>, <LPBODY>.....</LPBODY> ve <LPFOOTER>....</LPFOOTER>

Raporumuzun başlıklarını <LPHEADER> içine yerleştiriyoruz. Böylece bu bölümdeki html kodları bir kez o da raporun başında kullanılıyor. <LPFOOTER> içindeki html kodlarda benzer şekilde bir kez ancak raporun sonunda kullanılıyor. SELECT ifadesi ile dönecek değerleri görüntülemek için kullanılacak html kodları da  <LPBODY> kısmında kullanılıyor. Buradaki kodlar herbir kayıt için tekrarlanacaktır. İki yüzde (%) arasında ifade edilen kolon isimlerinin yerine rapor çıktısında bu kolonların değerleri yeralacaktır.

<LPHEADER>
<HTML>

<HEAD><TITLE>Event Source Name</TITLE></HEAD>

<BODY bgcolor="#EFEFFF">

<TABLE BORDER="1" CELLPADDING="2" CELLSPACING="2">
<TR>
<TH COLSPAN="2" ALIGN="CENTER">Event Source Name</TH>
</TR>
<TR>
<TH>Event Source Name</TH>
<TH>%</TH>
</TR>

</LPHEADER>


<LPBODY>
<TR>
<TD>%SourceName%</TD>
<TD>%Percent%</TD>
</TR>
</LPBODY>

<LPFOOTER>
</TABLE>
</BODY>
</HTML>
</LPFOOTER>

 

Rapor için kullanacağımız Log Parser komutu da aşağıdaki şekildedir.

C:\Program Files\Log Parser 2.2>LogParser "SELECT SourceName, MUL(PROPCOUNT(*), 100.0) AS Percent FROM Application TO EventSource.html GROUP BY SourceName ORDER BY Percent DESC" -o:TPL -tpl:EventSource.tpl

Bu kodda html olarak rapor almamızı sağlayan değişikliklerden birisi "TO EventSource.html" kullanımıdır. Hedef rapor çıktısının ismini TO ifadesinin ardından belirtiyoruz.

-o:TPL parametre kullanımı ile de çıktı olarak şablon (Template) dosya yapısını kullanacağımız bildiriyoruz. Böylece Log Parser LPHEADER, LPBODY ve LPFOOTER kullanılarak hazırlanmış bir şablon beklemeye başlıyor. 

Ardından hemen tpl:EventSource.tpl ile de şablon dosyamızı belirtiyoruz.

Yukarıdaki Log Parser komutu ile EventSource.html adında istediğimiz değerlere tablolanmış bir şekilde sahip html formatında bir raporu elde edebiliriz.

 

Özetle Microsoft Log Parser 2.2 kullanarak uygulamanın desteklediği pek çok formattan birisi olan EVT formatında Windows Event Logları üzerinde örnekler yaparak Log Parser uygulamasını, yapabileceklerini tanımaya çalıştık.




Copyright © 2004 - 2021 Eralper YILMAZ. All rights reserved.