Export (0) Print
Expand All

EventLog.WriteEntry Method (String, EventLogEntryType, Int32, Int16, Byte[])

Writes an entry with the given message text, application-defined event identifier, and application-defined category to the event log, and appends binary data to the message.

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

'Declaration
Public Sub WriteEntry ( _
	message As String, _
	type As EventLogEntryType, _
	eventID As Integer, _
	category As Short, _
	rawData As Byte() _
)
'Usage
Dim instance As EventLog
Dim message As String
Dim type As EventLogEntryType
Dim eventID As Integer
Dim category As Short
Dim rawData As Byte()

instance.WriteEntry(message, type, eventID, category, rawData)
public void WriteEntry (
	String message, 
	EventLogEntryType type, 
	int eventID, 
	short category, 
	byte[] rawData
)
public function WriteEntry (
	message : String, 
	type : EventLogEntryType, 
	eventID : int, 
	category : short, 
	rawData : byte[]
)
Not applicable.

Parameters

message

The string to write to the event log.

type

One of the EventLogEntryType values.

eventID

The application-specific identifier for the event.

category

The application-specific subcategory associated with the message.

rawData

An array of bytes that holds the binary data associated with the entry.

Exception typeCondition

ArgumentException

The Source property of the EventLog has not been set.

-or-

The method attempted to register a new event source, but the computer name in MachineName is not valid.

- or -

The source is already registered for a different event log.

- or -

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

- or -

The message string is longer than 32766 bytes.

- or -

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

InvalidOperationException

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

InvalidEnumArgumentException

type is not a valid EventLogEntryType.

Win32Exception

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

Use this overload to write application-defined event-specific data to the event log. The Event Viewer does not interpret this data; it displays raw data only in a combined hexadecimal and text format. Use event-specific data sparingly, including it only if you are sure it will be useful to someone debugging the problem. You can also use event-specific data to store information the application can process independently of the Event Viewer. For example, you could write a viewer specifically for your events, or write a program that scans the logfile and creates reports that include information from the event-specific data.

In addition to the binary data, you can specify an application-defined category and an application-defined event identifier. 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.

NoteNote:

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.

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 set the Source property on your EventLog component before you can write entries to the log. 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.

If the source specified in the Source property of this EventLog instance is not registered on the computer that your component is writing to, WriteEntry calls CreateEventSource and registers the source.

NoteNote:

If you do not specify a MachineName for your EventLog instance before you call CreateEventSource or WriteEntry, the local computer (".") is assumed.

If the system needs to register the Source through a call to WriteEntry and the Log property has not been set on your EventLog instance, the log defaults to the Application log.

NoteNote:

Many exceptions listed above are generated by errors raised during the process of registering the 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.

NoteNote:

If you write an entry to a remote computer, the value of the message (the text string) might not be what you expect if the remote computer is not running the .NET Framework.

NoteNote:

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

' Create the source, if it does not already exist.
dim myLogName as string = "myNewLog"
If Not EventLog.SourceExists("MySource") Then
   EventLog.CreateEventSource("MySource", myLogName)
   Console.WriteLine("Creating EventSource")
else
   myLogName = EventLog.LogNameFromSourceName("MySource",".")
End If

' Create an EventLog and assign source.
Dim myEventLog As New EventLog()
myEventLog.Source = "MySource"
myEventLog.Log = myLogName

' Set the 'description' for the event.
Dim myMessage As String = "This is my event."
Dim myEventLogEntryType As EventLogEntryType = EventLogEntryType.Warning
Dim myApplicatinEventId As Integer = 1100
Dim myApplicatinCategoryId As Short = 1

' Set the 'data' for the event.
Dim myRawData(3) As Byte
Dim i As Integer
For i = 0 To 3
   myRawData(i) = 1
Next i
' Write the entry in the event log.
Console.WriteLine("Writing to EventLog.. ")
myEventLog.WriteEntry(myMessage, myEventLogEntryType, myApplicatinEventId, _
                     myApplicatinCategoryId, myRawData)

// Create the source, if it does not already exist.
String myLogName = "myNewLog";
if (!(EventLog.SourceExists("MySource"))) {
    EventLog.CreateEventSource("MySource", myLogName);
    Console.WriteLine("Creating EventSource");
}
else {
    myLogName = EventLog.LogNameFromSourceName("MySource", ".");
} 
// Create an EventLog and assign source.
EventLog myEventLog = new EventLog();
myEventLog.set_Source("MySource");
myEventLog.set_Log(myLogName);

// Set the 'description' for the event.
String myMessage = "This is my event.";
EventLogEntryType myEventLogEntryType = EventLogEntryType.Warning;
int myApplicatinEventId = 1100;
short myApplicatinCategoryId = 1;

// Set the 'data' for the event.
ubyte myRawData[] = new ubyte[4];
for (int i = 0; i < 4; i++) {
    myRawData[i] = 1;
}
// Write the entry in the event log.
Console.WriteLine("Writing to EventLog.. ");
myEventLog.WriteEntry(myMessage, myEventLogEntryType, 
    myApplicatinEventId, myApplicatinCategoryId, myRawData);

Windows Server 2000 SP4, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition

The Microsoft .NET Framework 3.0 is supported on Windows Vista, Microsoft Windows XP SP2, and Windows Server 2003 SP1.

.NET Framework

Supported in: 3.0, 2.0, 1.1, 1.0

Community Additions

ADD
Show:
© 2014 Microsoft