Я попытался использовать методы 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 ()
, вместо введения нового метода?
EventLog.WriteEntry
— это «быстрый и грязный» способ записи в журнал событий где вы можете написать строку. EventLog.WriteEvent
позволяет в полной мере использовать собственный API Win32. Однако для этого вы должны создать локализованный файл сообщения, который затем компилируется с помощью компилятора сообщений (mc.exe). Каждое событие может содержать строки замены и может быть локализовано в соответствии с языковым стандартом на компьютере.
Чтобы избежать этого дополнительного шага по созданию файла сообщений, оболочка .Net для API журнала событий использует сообщения, которые просто вставляют строки, предоставленные в качестве аргументов. Эти сообщения используются EventLog.WriteEntry
и сохраняются как встроенные ресурсы в EventLogMessages.dll
в папке .Net.
Обычно достаточно использовать EventLog.WriteEntry
, но если вам нужно локализовать ваши сообщения или вы хотите поддерживать их вне исходного кода, вам следует создать файл сообщений и использовать EventLog.WriteEvent
.