Как открыть журнал событий программно? - PullRequest
2 голосов
/ 04 марта 2009

Я регистрирую ошибки в журнале событий, используя обычное:

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

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

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

Ответы [ 2 ]

5 голосов
/ 04 марта 2009

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

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

var log = EventLog.GetEventLogs().Where(x => x == "Application").First();
foreach (var entry in log.Entries) {
  // Do something with the entry
}
1 голос
/ 04 марта 2009

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

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

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

...