Как открыть журнал событий программно?

2

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

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

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

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

  • 0
    Просто вопрос, Trace.TraceError не записывает в EventLog (сам по себе), не так ли?
  • 0
    @Henk Хенк, нет, я в это не верю. alphabeat предположительно добавил EventLogTraceListener в Trace.TraceListeners.
Показать ещё 1 комментарий
Теги:
winforms
event-log

2 ответа

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
    Спасибо за пример. Я люблю меня немного лямбда.
Показать ещё 3 комментария
1

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

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

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

Ещё вопросы

Сообщество Overcoder
Наверх
Меню