Разница между методами EventLog.WriteEntry и EventLog.WriteEvent

Я попытался использовать методы WriteEntry и WriteEvent класса EventLog .

EventLog.WriteEntry("Saravanan", "Application logs an entry", 
                     EventLogEntryType.Information, 2, 3);
EventLog.WriteEvent("Saravanan",  new EventInstance(2, 3), 
                                 "Application logs an event");

Оба результата выводят один и тот же результат.

Is есть ли разница в использовании этих методов?

Если разница незначительна, почему это не было сделано путем перегрузки методов WriteEvent () или WriteEntry () , вместо введения нового метода?

36
задан SteveC 31 January 2014 в 14:26
поделиться

1 ответ

EventLog.WriteEntry — это «быстрый и грязный» способ записи в журнал событий где вы можете написать строку. EventLog.WriteEvent позволяет в полной мере использовать собственный API Win32. Однако для этого вы должны создать локализованный файл сообщения, который затем компилируется с помощью компилятора сообщений (mc.exe). Каждое событие может содержать строки замены и может быть локализовано в соответствии с языковым стандартом на компьютере.

Чтобы избежать этого дополнительного шага по созданию файла сообщений, оболочка .Net для API журнала событий использует сообщения, которые просто вставляют строки, предоставленные в качестве аргументов. Эти сообщения используются EventLog.WriteEntry и сохраняются как встроенные ресурсы в EventLogMessages.dll в папке .Net.

Обычно достаточно использовать EventLog.WriteEntry, но если вам нужно локализовать ваши сообщения или вы хотите поддерживать их вне исходного кода, вам следует создать файл сообщений и использовать EventLog.WriteEvent.

47
ответ дан 27 November 2019 в 06:08
поделиться
Другие вопросы по тегам:

Похожие вопросы: