Получение текста категории из EventLogEntry.Category - PullRequest
3 голосов
/ 21 ноября 2010

По какой-то причине EventLogEntry.Category возвращает номер вместо текста категории.Он возвращает то же самое, что и свойство CategoryNumber, которое, как я предполагаю, не должно происходить.Я что-то здесь не так делаю, или есть другой способ получить текст категории для EventLogEntry?

Вот код для воспроизведения ошибки:

Console.WriteLine(new EventLog("System").Entries[0].Category);

Это должно что-то написатьнапример, «Нет» или «Событие состояния службы» (или любая соответствующая категория для вас), но вместо этого он пишет «(0)».Есть мысли о том, что я здесь делаю не так?

1 Ответ

2 голосов
/ 04 марта 2011

Это ошибка в их API. Я не думаю, что это будет решено в ближайшее время. Это происходит только в Windows Vista и более поздних ОС. Так что на самом деле это работает правильно в XP, 2000, 2003 и т. Д.

Однако, есть другой подход, на который вы должны обратить внимание. Похоже, что это низкоуровневый подход для программного доступа к журналу событий. Эта технология является инструментарием управления Windows (WMI), и к нему есть интерфейс в .NET и, следовательно, C #.

Проверьте эти ссылки:

Учебное пособие по инструментарию управления Windows (WMI)

Удаленный мониторинг журналов с использованием WMI в C # и .NET

Чтение журнала событий вдов

...