tags:

views:

52

answers:

1

I tried using WriteEntry and WriteEvent methods of EventLog class.

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

Both output the same result.

Is there any difference in usage of these methods?

If there are only minor difference, why was it not done through a overload of either WriteEvent()/WriteEntry() methods, instead of introducing a new method?

+5  A: 

EventLog.WriteEntry is a "quick and dirty" way to write to the event log where you can write a string. EventLog.WriteEvent enables you to take full advantage of the native Win32 API. However, to do that you are supposed to create a localized message file you then compile using the message compiler (mc.exe). Each event can contain substition strings and can be localized to match the locale on the computer.

To avoid this extra step of creating a message file the .Net wrapper for the event log API use messages that simply inserts the strings supplied as arguments. These message are used by EventLog.WriteEntry and are stored as embedded resources in EventLogMessages.dll in the .Net folder.

Normally using EventLog.WriteEntry is adequate, but if you need to localize your messages or want to maintain them outside your source code you should create a message file and use EventLog.WriteEvent.

Martin Liversage