2010-11-21 2 views
2

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

Вот код, чтобы воспроизвести ошибку:

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

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

+0

Я попробовал это на целый ряд различных машин, все с тем же результатом. Текст категории никогда не возвращается, а только номер. –

+0

Что показывает Windows Event Viewer (eventvwr) для этих событий? Названия категорий или номера? –

+0

Event Viewer показывает правильные имена категорий. –

ответ

1

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

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

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

Windows Management Instrumentation (WMI) Tutorial

Monitoring Remote Log Remotely using WMI in C# and .NET

Reading Widsows Event Log

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