2009-03-04 19 views
2

Ben olağan kullanarak olay günlüğüne hataları günlüğe kaydediyorum:Olay günlüğünü program aracılığıyla nasıl açarsınız?

 System.Diagnostics.Trace.TraceError("<" + purpose + "><time>" + DateTime.Now.ToUniversalTime() + "</time><message>" + message + "</message></" + purpose + ">"); 

ve bu günlük dosyasını çağırmak ve kullanıcı için görüntülemek için bir yol olup olmadığını merak ediyorum (kendi formatımda veya açarak) olay günlüğü dosyası 'Olay Görüntüleyicisi' gibi doğrudan.

Dosyayı% SystemRoot% \ System32 \ Winevt \ Logs \ mylog.evtx dosyasında buldum ancak bu şekilde yaklaşıp yaklaşmayacağımı bilmiyorum. İdeal olarak, Event Viewer'ın yaptığı ama benim uygulamam için özelleştirilenleri taklit etmek isterim.

+0

Sadece bir soru, Trace.TraceError, EventLog'a yazamaz (kendi başına), değil mi? –

+0

@Henk, hayır, ben buna inanmıyorum. alphabeat muhtemelen Trace.TraceListeners için bir EventLogTraceListener ekledi. –

+0

Gerçekten var. O zamanlar habersiz olmama rağmen, zaten başka bir geliştirici tarafından kurulmuştu. –

cevap

4

Ben olay günlüğüne nasıl erişilebilir veri Vista/Win Server edilir görerek denemedim

var log = EventLog.GetEventLogs().Where(x => x == "Application").First(); 
foreach (var entry in log.Entries) { 
    // Do something with the entry 
} 
+0

Tabii ki, teşekkürler! Bunu nasıl görmedim:/ –

+0

Örnek için teşekkürler. Bana biraz lambda aşığım. –

+0

@alphabeat, lambdas rock :) – JaredPar

1

şöyle Örnek için, uygulamalarda girişleri görüntülemek giriş yapabilirsiniz System.Diagnostics.EventLog

deneyin 2k8 (* .evtx), ancak MMC konsolu genişletilebilir, böylece kendi MMC eklentinizi şimdi yazabilirsiniz. Bu nedenle, kendi EventVwr.msc sürümünüzü yazmayı bitirdiyseniz, artık pasta gibi kolaydır.

http://msdn.microsoft.com/en-us/library/ms692759(VS.85).aspx

Eğer geçerli işlevsellik eksik özelleştirilmiş günlük görüntüleyici thats yapmak isteyen konum nedir?

İlgili konular