NGWS SDK Documentation  

This is preliminary documentation and subject to change.
To comment on this topic, please send us email at ngwssdk@microsoft.com. Thanks!

EventLog.WriteEntry (String, EventLogEntryType, Int16)

Writes an entry of the specified EventLogEntryType and with the user-defined eventID to the event log.

[Visual Basic]
Overloads Public Sub WriteEntry( _
   ByVal message As String, _
   ByVal type As EventLogEntryType, _
   ByVal eventID As Short _
)
[C#]
public void WriteEntry(
   string message,
   EventLogEntryType type,
   short eventID
);
[C++]
public: void WriteEntry(
   String* message,
   EventLogEntryType type,
   short eventID
);
[JScript]
public function WriteEntry(
   message : String,
   type : EventLogEntryType,
   eventID : Int16
);

Parameters

message
The string to write to the event log.
type
One of the EventLogEntryType values.
eventID
The source-specific identifier for the event, which identifies the current message.

Exceptions

Exception Type Condition
ArgumentException The Source property of the EventLog has not been set.

-or-

The method has attempted to create a new event Source, but the computer name is not valid.

-or-

The method has attempted to create a new event Source, but the source name was not specified.

-or-

The method has attempted to create a new event Source, but the source already exists on the computer.

-or-

The method has attempted to create a new Log, but the first eight characters of the log name are not unique on the computer.

-or-

The method has attempted to open the event log with read access, but the Log property was not specified.

-or-

The method has attempted to open the event log with write access, but the Source property was not specified.

-or-

The message string is too long. The size must be less than 16384 bytes.

-or-

The source is not registered to the given log.

Exception The registry entry for the Log could not be opened on a remote computer.
InvalidOperationException The method has attempted to open the event log with write access, but you do not have write access to the log.
Win32Exception The method attempted to release the event log's read or write handle but did not do so successfully.

-or-

The method attempted to open the event log with read access but was unable to do so.

-or-

The event could not be reported to the log.

SystemException The event log could not be notified to start listenting for events.

Remarks

WriteEntry lets you specify a string message to write to the log. This method writes the given string directly to the log; it does not use a localizable message file.

Use this overload if you want to write an entry with an application-defined eventID to the event log. The eventID together with the Source uniquely identifies an event. Each application can define its own numbered events and the description strings to which they are mapped. Event viewers can present these strings to the user in the "Event" column. They should help the user understand what went wrong and suggest what actions to take.

In addition to the event identifier, this overload of WriteEntry lets you specify an EventLogEntryType for the event being written to the event log. The type is indicated in the Event Viewer for a log by an icon and text in the Type column.

You must set the Source property on your EventLog component before you can write entries to the log. You can call CreateEventSource on a new Source to register it before writing to the event log, but this is not necessary. If a new Source has not been registered on the computer to which your component is writing, WriteEntry calls CreateEventSource automatically and registers the Source for you.

If you have not specified a MachineName for your EventLog instance before calling 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, it defaults to the Application log.

Note   Many of the exceptions listed above are generated by errors raised during the process of registering the Source.

Example [Visual Basic]

The following example connects to a log with the source "myNewSource". It then writes an entry to the log. This example assumes there is an existing source named "myNewSource" on the local computer.

The procedure defines its own eventId values, which correspond to what appears in the Event column of the Event Viewer. The following table describes how the application-defined fileEventType strings correspond to locally-defined eventId values. Note that these are randomly selected for this example; there is no inherent meaning in the eventId or fileEventType values that were chosen.

File Event String eventId Value
OpenFile 0x01
ModifyFile 0x02
CloseFile 0x04
CreateFile 0x08
DeleteFile 0x10
FileAccessDenied 0x20
FileError 0x40

When the entry is written to the event log, the entry type (Information, Failure Audit) is specified as well. You can view the entry information in the Event Viewer to see the Type (type), Event (eventId), and message text.

Import the System.Diagnostics namespace for this example.

[Visual Basic]

Private Sub WriteEntryWithId(ByVal fileEventType As String)
    'Declare a new event log.
    Dim evtLog As EventLog
    'The eventId corresponds to the file event.
    Dim eventId As Int16
    'The EventLogEntryType we associate with the file event.
    Dim entryType As EventLogEntryType

    'Instantiate a new event log.
    evtLog = New EventLog
    'Connect the event log to the source passed in.
    evtLog.Source = "mySource"

    'Set the eventId and entryType based on the file event passed in.
    Select Case fileEventType
        Case "OpenFile"
'This was randomly defined. The actual values are not crucial.
eventId = 1
entryType = EventLogEntryType.SuccessAudit
        Case "ModifyFile"
eventId = 2
entryType = EventLogEntryType.Information
        Case "CloseFile"
eventId = 4
entryType = EventLogEntryType.Information
        Case "CreateFile"
eventId = 8
entryType = EventLogEntryType.Information
        Case "DeleteFile"
eventId = 16
entryType = EventLogEntryType.Information
        Case "FileAccessDenied"
eventId = 32
entryType = EventLogEntryType.FailureAudit
        Case "FileError"
eventId = 64
entryType = EventLogEntryType.Error
    End Select

    'Write the entry information to the log.
    evtLog.WriteEntry("File access event occurred.", entryType, eventId)
End Sub

See Also

EventLog Class | EventLog Members | System.Diagnostics Namespace | EventLog.WriteEntry Overload List | EventLogEntryType | Source | CreateEventSource | DeleteEventSource | SourceExists