Windows apps
Collapse the table of content
Expand the table of content
The topic you requested is included in another documentation set. For convenience, it's displayed below. Choose Switch to see the topic in its original location.

EventLog.WriteEntry Method (String, String, EventLogEntryType, Int32, Int16)


The .NET API Reference documentation has a new home. Visit the .NET API Browser on to see the new experience.

Writes an entry with the given message text, application-defined event identifier, and application-defined category to the event log, using the specified registered event source. The category can be used by the Event Viewer to filter events in the log.

Namespace:   System.Diagnostics
Assembly:  System (in System.dll)

public static void WriteEntry(
	string source,
	string message,
	EventLogEntryType type,
	int eventID,
	short category


Type: System.String

The source by which the application is registered on the specified computer.

Type: System.String

The string to write to the event log.

Type: System.Diagnostics.EventLogEntryType

One of the EventLogEntryType values.

Type: System.Int32

The application-specific identifier for the event.

Type: System.Int16

The application-specific subcategory associated with the message.

Exception Condition

The source value is an empty string ("").

- or -

The source value is null.

- or -

eventID is less than zero or greater than UInt16.MaxValue.

- or -

The message string is longer than 31,839 bytes (32,766 bytes on Windows operating systems before Windows Vista).

- or -

The source name results in a registry key path longer than 254 characters.


The registry key for the event log could not be opened.


type is not a valid EventLogEntryType.


The operating system reported an error when writing the event entry to the event log. A Windows error code is not available.

Use this method to write an entry with an application-defined category to the event log, using a source that is already registered as an event source for the appropriate log. The Event Viewer uses the category to filter events written by an event source. The Event Viewer can display the category as a numeric value, or it can use the category as a resource identifier to display a localized category string.


The category parameter should be a positive value. Negative category values appear as a complementary positive number in the Event Viewer. For example, a –10 appears as 65,526, a –1 as 65,535.

To display localized category strings in the Event Viewer, you must use an event source configured with a category resource file, and set the category to a resource identifier in the category resource file. If the event source does not have a configured category resource file, or the specified category does not index a string in the category resource file, then the Event Viewer displays the numeric category value for that entry. Configure the category resource file, along with the number of category strings in the resource file, using the EventLogInstaller or the EventSourceCreationData class.

In addition to the category, you can specify an event identifier for the event being written to the event log. Event identifiers, along with the event source, uniquely identify an event. Each application can define its own numbered events and the description strings to which they map. Event viewers display these string values to help the user understand what went wrong and suggest what actions to take.

Finally, you can specify an EventLogEntryType for the event being written to the event log. The type is indicated by an icon and text in the Type column in the Event Viewer for a log. This parameter indicates whether the event type is error, warning, information, success audit, or failure audit.

You must create and configure the event source before writing the first entry with the source. Create the new event source during the installation of your application. This allows time for the operating system to refresh its list of registered event sources and their configuration. If the operating system has not refreshed its list of event sources, and you attempt to write an event with the new source, the write operation will fail. You can configure a new source using an EventLogInstaller, or using the CreateEventSource method. You must have administrative rights on the computer to create a new event source.

The source must be configured either for writing localized entries or for writing direct strings. The WriteEntry method writes the given string directly to the event log; it does not use a localizable message resource file. Use the WriteEvent method to write events using a localized message resource file.

If your application writes entries using both resource identifiers and string values, you must register two separate sources. For example, configure one source with resource files, and then use that source in the WriteEvent method to write entries using resource identifiers to the event log. Then create a different source without resource files, and use that source in the WriteEntry method to write strings directly to the event log using that source.


If the message parameter contains a NUL character, the message in the event log is terminated at the NUL character.

The message string cannot contain %n, where n is an integer value (for example, %1), because the event viewer treats it as an insertion string. Because an Internet Protocol, version 6 (IPv6) address can contain this character sequence, you cannot log an event message that contains an IPv6 address.

int myEventID = 20;
short myCategory = 10;
// Write an informational entry to the event log.
Console.WriteLine("Write from first source ");
EventLog.WriteEntry("FirstSource", "Writing warning to event log.",
                     EventLogEntryType.Information, myEventID, myCategory);


for writing the event log information on the computer. Associated enumeration: EventLogPermissionAccess.Write

.NET Framework
Available since 1.1
Return to top
© 2018 Microsoft