Подтвердить что ты не робот

Разница между методами 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");

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

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

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

4b9b3361

Ответ 1

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

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

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