2009-03-04 5 views
2

Я регистрация ошибок в журнал событий с помощью обычного:Как открыть журнал событий программно?

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

и мне интересно, если есть способ вызвать этот файл журнала и отобразить его для пользователя (либо в собственном формате или при открытии файл журнала событий так же, как «Event Viewer»).

Я нашел файл в% SystemRoot% \ System32 \ Winevt \ Logs \ mylog.evtx, но не уверен, должен ли я приближаться к нему таким образом или нет. В идеале я хотел бы подражать тому, что делает просмотр событий, но настроен для моего приложения.

+0

Только вопрос, Trace.TraceError не пишет в EventLog (сам по себе), не так ли? –

+0

@ Хенк, нет, я так не верю. alphabeat предположительно добавил EventLogTraceListener в Trace.TraceListeners. –

+0

У меня действительно есть. Хотя в то время я не знал, он уже был настроен другим разработчиком. –

ответ

4

Попробуйте System.Diagnostics.EventLog

Для примера, вы можете просмотреть записи в журнале приложений следующим образом

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

Конечно, спасибо! Как я не видел этого:/ –

+0

Спасибо за пример. Я обожаю меня лямбдой. –

+0

@alphabeat, lambdas rock :) – JaredPar

1

Я не пытался увидеть, насколько доступны данные в журнале событий в Vista/Win Server, 2k8 (* .evtx), но консоль MMC расширяема, поэтому теперь вы можете написать свой собственный плагин MMC. Так что, если вы в конечном итоге написали свою собственную версию EventVwr.msc, теперь это просто как пирог.

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

Что это такое, что Вы желаете сделать в вашей индивидуальных просмотре журнала Thats, отсутствующей в текущей функциональности?

Смежные вопросы