EventLog.WriteEvent Methode

Definition

Schreibt einen lokalisierten Ereigniseintrag in das Ereignisprotokoll.

Überlädt

WriteEvent(String, EventInstance, Object[])

Schreibt unter Verwendung der angegebenen registrierten Ereignisquelle einen Ereignisprotokolleintrag mit den angegebenen Ereignisdaten und Meldungsersetzungszeichenfolgen.

WriteEvent(EventInstance, Object[])

Schreibt einen lokalisierten Eintrag in das Ereignisprotokoll.

WriteEvent(EventInstance, Byte[], Object[])

Schreibt einen Ereignisprotokolleintrag mit den angegebenen Ereignisdaten, Meldungsersetzungszeichenfolgen und zugeordneten Binärdaten.

WriteEvent(String, EventInstance, Byte[], Object[])

Schreibt einen Ereignisprotokolleintrag mit den angegebenen Ereignisdaten, Meldungsersetzungszeichenfolgen und zugeordneten Binärdaten und unter Verwendung der angegebenen registrierten Ereignisquelle.

WriteEvent(String, EventInstance, Object[])

Quelle:
EventLog.cs
Quelle:
EventLog.cs
Quelle:
EventLog.cs

Schreibt unter Verwendung der angegebenen registrierten Ereignisquelle einen Ereignisprotokolleintrag mit den angegebenen Ereignisdaten und Meldungsersetzungszeichenfolgen.

public:
 static void WriteEvent(System::String ^ source, System::Diagnostics::EventInstance ^ instance, ... cli::array <System::Object ^> ^ values);
public static void WriteEvent (string source, System.Diagnostics.EventInstance instance, params object[] values);
static member WriteEvent : string * System.Diagnostics.EventInstance * obj[] -> unit
Public Shared Sub WriteEvent (source As String, instance As EventInstance, ParamArray values As Object())

Parameter

source
String

Der Name der für die Anwendung auf dem angegebenen Computer registrierten Ereignisquelle.

instance
EventInstance

Eine EventInstance-Instanz, die einen lokalisierten Ereignisprotokolleintrag darstellt.

values
Object[]

Ein Array von Zeichenfolgen, die mit dem Meldungstext des Ereignisprotokolleintrags zusammengeführt werden sollen.

Ausnahmen

Der source-Wert ist eine leere Zeichenfolge ("").

- oder -

Der source-Wert ist null.

- oder -

instance.InstanceId ist kleiner als null oder größer als UInt16.MaxValue.

- oder -

values enthält mehr als 256 Elemente.

- oder -

Eines der values-Elemente ist länger als 32.766 Bytes.

- oder -

Der Quellenname führt dazu, dass der Registrierungsschlüsselpfad länger als 254 Zeichen ist.

instance ist null.

Der Registrierungsschlüssel für das Ereignisprotokoll konnte nicht geöffnet werden.

Das Betriebssystem hat beim Schreiben des Ereigniseintrags in das Ereignisprotokoll einen Fehler gemeldet. Es ist kein Windows-Fehlercode verfügbar.

Beispiele

Im folgenden Beispiel werden ein Informationsereigniseintrag und ein Warnungsereigniseintrag in ein vorhandenes Ereignisprotokoll geschrieben. Der Ereignismeldungstext wird mithilfe eines Ressourcenbezeichners in einer Ressourcendatei angegeben. Im Beispiel wird davon ausgegangen, dass die entsprechende Ressourcendatei für die Quelle registriert wurde.

String^ sourceName = "SampleApplicationSource";
if ( EventLog::SourceExists( sourceName ) )
{
   
   // Define an informational event and a warning event.
   // The message identifiers correspond to the message text in the
   // message resource file defined for the source.
   EventInstance ^ myInfoEvent = gcnew EventInstance( InformationMsgId,0,EventLogEntryType::Information );
   EventInstance ^ myWarningEvent = gcnew EventInstance( WarningMsgId,0,EventLogEntryType::Warning );
   
   // Insert the method name into the event log message.
   array<String^>^insertStrings = {"EventLogSamples.WriteEventSample2"};
   
   // Write the events to the event log.
   EventLog::WriteEvent( sourceName, myInfoEvent, 0 );
   
   // Append binary data to the warning event entry.
   array<Byte>^binaryData = {7,8,9,10};
   EventLog::WriteEvent( sourceName, myWarningEvent, binaryData, insertStrings );
}
else
{
   Console::WriteLine( "Warning - event source {0} not registered", sourceName );
}

string sourceName = "SampleApplicationSource";
if(EventLog.SourceExists(sourceName))
{

    // Define an informational event and a warning event.

    // The message identifiers correspond to the message text in the
    // message resource file defined for the source.
    EventInstance myInfoEvent = new EventInstance(InformationMsgId, 0, EventLogEntryType.Information);
    EventInstance myWarningEvent = new EventInstance(WarningMsgId, 0, EventLogEntryType.Warning);

    // Insert the method name into the event log message.
    string [] insertStrings = {"EventLogSamples.WriteEventSample2"};

    // Write the events to the event log.

    EventLog.WriteEvent(sourceName, myInfoEvent);

    // Append binary data to the warning event entry.
    byte [] binaryData = { 7, 8, 9, 10 };
    EventLog.WriteEvent(sourceName, myWarningEvent, binaryData, insertStrings);
}
else
{
    Console.WriteLine("Warning - event source {0} not registered",
        sourceName);
}
           Dim sourceName As String = "SampleApplicationSource"
           If EventLog.SourceExists(sourceName)
  
               ' Define an informational event and a warning event.

               ' The message identifiers correspond to the message text in the
               ' message resource file defined for the source.
               Dim myInfoEvent As EventInstance = new EventInstance(InformationMsgId, 0, EventLogEntryType.Information)
               Dim myWarningEvent As EventInstance = new EventInstance(WarningMsgId, 0, EventLogEntryType.Warning)

               ' Insert the method name into the event log message.
               Dim insertStrings() As String = {"EventLogSamples.WriteEventSample2"}
           
               ' Write the events to the event log.

               EventLog.WriteEvent(sourceName, myInfoEvent, insertStrings)

               ' Append binary data to the warning event entry.
               Dim binaryData() As Byte = { 7, 8, 9, 10 }
               EventLog.WriteEvent(sourceName, myWarningEvent, binaryData, insertStrings)
           Else 
               Console.WriteLine("Warning - event source {0} not registered", _
                   sourceName)
           End If

Im Beispiel wird die folgende Meldungstextdatei verwendet, die in die Ressourcenbibliothek EventLogMsgs.dll integriert ist. Eine Nachrichtentextdatei ist die Quelle, aus der die Nachrichtenressourcendatei erstellt wird. Die Nachrichtentextdatei definiert die Ressourcenbezeichner und den Text für die Kategorie, die Ereignismeldung und die Parametereinfügungszeichenfolgen.

; // EventLogMsgs.mc  
; // ********************************************************  

; // Use the following commands to build this file:  

; //   mc -s EventLogMsgs.mc  
; //   rc EventLogMsgs.rc  
; //   link /DLL /SUBSYSTEM:WINDOWS /NOENTRY /MACHINE:x86 EventLogMsgs.Res   
; // ********************************************************  

; // - Event categories -  
; // Categories must be numbered consecutively starting at 1.  
; // ********************************************************  

MessageId=0x1  
Severity=Success  
SymbolicName=INSTALL_CATEGORY  
Language=English  
Installation  
.  

MessageId=0x2  
Severity=Success  
SymbolicName=QUERY_CATEGORY  
Language=English  
Database Query  
.  

MessageId=0x3  
Severity=Success  
SymbolicName=REFRESH_CATEGORY  
Language=English  
Data Refresh  
.  

; // - Event messages -  
; // *********************************  

MessageId = 1000  
Severity = Success  
Facility = Application  
SymbolicName = AUDIT_SUCCESS_MESSAGE_ID_1000  
Language=English  
My application message text, in English, for message id 1000, called from %1.  
.  

MessageId = 1001  
Severity = Warning  
Facility = Application  
SymbolicName = AUDIT_FAILED_MESSAGE_ID_1001  
Language=English  
My application message text, in English, for message id 1001, called from %1.  
.  

MessageId = 1002  
Severity = Success  
Facility = Application  
SymbolicName = GENERIC_INFO_MESSAGE_ID_1002  
Language=English  
My generic information message in English, for message id 1002.  
.  

MessageId = 1003  
Severity = Warning  
Facility = Application  
SymbolicName = GENERIC_WARNING_MESSAGE_ID_1003  
Language=English  
My generic warning message in English, for message id 1003, called from %1.  
.  

MessageId = 1004  
Severity = Success  
Facility = Application  
SymbolicName = UPDATE_CYCLE_COMPLETE_MESSAGE_ID_1004  
Language=English  
The update cycle is complete for %%5002.  
.  

MessageId = 1005  
Severity = Warning  
Facility = Application  
SymbolicName = SERVER_CONNECTION_DOWN_MESSAGE_ID_1005  
Language=English  
The refresh operation did not complete because the connection to server %1 could not be established.  
.  

; // - Event log display name -  
; // ********************************************************  

MessageId = 5001  
Severity = Success  
Facility = Application  
SymbolicName = EVENT_LOG_DISPLAY_NAME_MSGID  
Language=English  
Sample Event Log  
.  

; // - Event message parameters -  
; //   Language independent insertion strings  
; // ********************************************************  

MessageId = 5002  
Severity = Success  
Facility = Application  
SymbolicName = EVENT_LOG_SERVICE_NAME_MSGID  
Language=English  
SVC_UPDATE.EXE  
.  

Hinweise

Verwenden Sie diese Methode, um einen lokalisierten Eintrag in das Ereignisprotokoll zu schreiben, wobei eine Quelle verwendet wird, die bereits als Ereignisquelle für das entsprechende Protokoll registriert ist. Sie geben die Ereigniseigenschaften mit Ressourcenbezeichnern anstelle von Zeichenfolgenwerten an. Der Ereignisanzeige verwendet die Ressourcenbezeichner, um die entsprechenden Zeichenfolgen aus der lokalisierten Ressourcendatei für die Quelle anzuzeigen. Sie müssen die Quelle bei der entsprechenden Ressourcendatei registrieren, bevor Sie Ereignisse mithilfe von Ressourcenbezeichnern schreiben.

Die Eingabe instance instance gibt die Ereignismeldung und die Eigenschaften an. Legen Sie die InstanceId der instance Eingabe für die definierte Nachricht in der Quellnachrichtenressourcendatei fest. Optional können Sie und CategoryIdEntryType der instance Eingabe festlegen, um die Kategorie und den Ereignistyp Ihres Ereigniseintrags zu definieren. Sie können auch ein Array sprachunabhängiger Zeichenfolgen angeben, die in den lokalisierten Nachrichtentext eingefügt werden sollen. Legen Sie auf null festvalues, wenn die Ereignismeldung keine Formatierungsplatzhalter für Ersatzzeichenfolgen enthält.

Die angegebene Quelle muss für ein Ereignisprotokoll registriert werden, bevor Sie verwenden WriteEvent. Die angegebene Quelle muss für das Schreiben lokalisierter Einträge in das Protokoll konfiguriert werden. Für die Quelle muss mindestens eine Nachrichtenressourcendatei definiert sein.

Sie müssen die Ereignisquelle erstellen und konfigurieren, bevor Sie den ersten Eintrag mit der Quelle schreiben. Create die neue Ereignisquelle während der Installation Ihrer Anwendung. Dadurch kann das Betriebssystem die Liste der registrierten Ereignisquellen und deren Konfiguration aktualisieren. Wenn das Betriebssystem die Liste der Ereignisquellen nicht aktualisiert hat und Sie versuchen, ein Ereignis mit der neuen Quelle zu schreiben, schlägt der Schreibvorgang fehl. Sie können eine neue Quelle mit oder EventLogInstallermit der CreateEventSource -Methode konfigurieren. Sie müssen über Administratorrechte auf dem Computer verfügen, um eine neue Ereignisquelle erstellen zu können.

Die Quelle muss entweder zum Schreiben lokalisierter Einträge oder zum Schreiben direkter Zeichenfolgen konfiguriert werden. Verwenden Sie die WriteEntry -Methode, wenn Ihre Anwendung Zeichenfolgenwerte direkt in das Ereignisprotokoll schreibt.

Wenn Ihre Anwendung Einträge mit Ressourcenbezeichnern und Zeichenfolgenwerten schreibt, müssen Sie zwei separate Quellen registrieren. Konfigurieren Sie beispielsweise eine Quelle mit Ressourcendateien, und verwenden Sie diese Quelle dann in der WriteEvent -Methode, um Einträge mithilfe von Ressourcenbezeichnern in das Ereignisprotokoll zu schreiben. Erstellen Sie dann eine andere Quelle ohne Ressourcendateien, und verwenden Sie diese Quelle in der WriteEntry -Methode, um Zeichenfolgen mithilfe dieser Quelle direkt in das Ereignisprotokoll zu schreiben.

Weitere Informationen

Gilt für:

WriteEvent(EventInstance, Object[])

Quelle:
EventLog.cs
Quelle:
EventLog.cs
Quelle:
EventLog.cs

Schreibt einen lokalisierten Eintrag in das Ereignisprotokoll.

public:
 void WriteEvent(System::Diagnostics::EventInstance ^ instance, ... cli::array <System::Object ^> ^ values);
public void WriteEvent (System.Diagnostics.EventInstance instance, params object[] values);
[System.Runtime.InteropServices.ComVisible(false)]
public void WriteEvent (System.Diagnostics.EventInstance instance, params object[] values);
member this.WriteEvent : System.Diagnostics.EventInstance * obj[] -> unit
[<System.Runtime.InteropServices.ComVisible(false)>]
member this.WriteEvent : System.Diagnostics.EventInstance * obj[] -> unit
Public Sub WriteEvent (instance As EventInstance, ParamArray values As Object())

Parameter

instance
EventInstance

Eine EventInstance-Instanz, die einen lokalisierten Ereignisprotokolleintrag darstellt.

values
Object[]

Ein Array von Zeichenfolgen, die mit dem Meldungstext des Ereignisprotokolleintrags zusammengeführt werden sollen.

Attribute

Ausnahmen

Die Source-Eigenschaft von EventLog wurde nicht festgelegt.

- oder -

Die Methode hat versucht, eine neue Ereignisquelle zu registrieren, der Computername in MachineName ist jedoch ungültig.

- oder -

Die Quelle ist bereits für ein anderes Ereignisprotokoll registriert.

- oder -

instance.InstanceId ist kleiner als null oder größer als UInt16.MaxValue.

- oder -

values enthält mehr als 256 Elemente.

- oder -

Eines der values-Elemente ist länger als 32.766 Bytes.

- oder -

Der Quellenname führt dazu, dass der Registrierungsschlüsselpfad länger als 254 Zeichen ist.

instance ist null.

Der Registrierungsschlüssel für das Ereignisprotokoll konnte nicht geöffnet werden.

Das Betriebssystem hat beim Schreiben des Ereigniseintrags in das Ereignisprotokoll einen Fehler gemeldet. Es ist kein Windows-Fehlercode verfügbar.

Beispiele

Im folgenden Beispiel werden zwei Überwachungseinträge in das Ereignisprotokoll myNewLoggeschrieben. Im Beispiel werden eine neue Ereignisquelle und ein neues Ereignisprotokoll erstellt, wenn sie auf dem lokalen Computer nicht vorhanden sind. Der Ereignismeldungstext wird mithilfe eines Ressourcenbezeichners in einer Ressourcendatei angegeben.

// Create the event source if it does not exist.
String^ sourceName = "SampleApplicationSource";
if (  !EventLog::SourceExists( sourceName ) )
{
   
   // Call a local method to register the event log source
   // for the event log "myNewLog."  Use the resource file
   // EventLogMsgs.dll in the current directory for message text.
   String^ messageFile = String::Format( "{0}\\{1}", System::Environment::CurrentDirectory, "EventLogMsgs.dll" );
   CreateEventSourceSample1( messageFile );
}

// Get the event log corresponding to the existing source.
String^ myLogName = EventLog::LogNameFromSourceName( sourceName, "." );
EventLog^ myEventLog = gcnew EventLog( myLogName,".",sourceName );

// Define two audit events.
// The message identifiers correspond to the message text in the
// message resource file defined for the source.
EventInstance ^ myAuditSuccessEvent = gcnew EventInstance( AuditSuccessMsgId,0,EventLogEntryType::SuccessAudit );
EventInstance ^ myAuditFailEvent = gcnew EventInstance( AuditFailedMsgId,0,EventLogEntryType::FailureAudit );

// Insert the method name into the event log message.
array<String^>^insertStrings = {"EventLogSamples.WriteEventSample1"};

// Write the events to the event log.
myEventLog->WriteEvent( myAuditSuccessEvent, insertStrings );

// Append binary data to the audit failure event entry.
array<Byte>^binaryData = {3,4,5,6};
myEventLog->WriteEvent( myAuditFailEvent, binaryData, insertStrings );

// Create the event source if it does not exist.
string sourceName = "SampleApplicationSource";
if(!EventLog.SourceExists(sourceName))
{
    // Call a local method to register the event log source
    // for the event log "myNewLog."  Use the resource file
    // EventLogMsgs.dll in the current directory for message text.

    string messageFile =  String.Format("{0}\\{1}",
        System.Environment.CurrentDirectory,
        "EventLogMsgs.dll");

    CreateEventSourceSample1(messageFile);
}

// Get the event log corresponding to the existing source.
string myLogName = EventLog.LogNameFromSourceName(sourceName,".");

EventLog myEventLog = new EventLog(myLogName, ".", sourceName);

// Define two audit events.

// The message identifiers correspond to the message text in the
// message resource file defined for the source.
EventInstance myAuditSuccessEvent = new EventInstance(AuditSuccessMsgId, 0, EventLogEntryType.SuccessAudit);
EventInstance myAuditFailEvent = new EventInstance(AuditFailedMsgId, 0, EventLogEntryType.FailureAudit);

// Insert the method name into the event log message.
string [] insertStrings = {"EventLogSamples.WriteEventSample1"};

// Write the events to the event log.

myEventLog.WriteEvent(myAuditSuccessEvent, insertStrings);

// Append binary data to the audit failure event entry.
byte [] binaryData = { 3, 4, 5, 6 };
myEventLog.WriteEvent(myAuditFailEvent, binaryData, insertStrings);

           Dim sourceName As String = "SampleApplicationSource"

           ' Create the event source if it does not exist.
           If Not EventLog.SourceExists(sourceName)
  
               ' Call a local method to register the event log source
               ' for the event log "myNewLog."  Use the resource file
               ' EventLogMsgs.dll in the current directory for message text.

               Dim messageFile As String =  String.Format("{0}\\{1}", _
                   System.Environment.CurrentDirectory, _
                   "EventLogMsgs.dll")

               CreateEventSourceSample1(messageFile)
           End If 

           ' Get the event log corresponding to the existing source.
           Dim myLogName As String = EventLog.LogNameFromSourceName(sourceName,".")
       
           Dim myEventLog As EventLog = new EventLog(myLogName, ".", sourceName)

           ' Define two audit events.
           Dim myAuditSuccessEvent As EventInstance = new EventInstance(AuditSuccessMsgId, 0, EventLogEntryType.SuccessAudit)
           Dim myAuditFailEvent As EventInstance = new EventInstance(AuditFailedMsgId, 0, EventLogEntryType.FailureAudit)

           ' Insert the method name into the event log message.
           Dim insertStrings() As String = {"EventLogSamples.WriteEventSample1"}
           
           ' Write the events to the event log.

           myEventLog.WriteEvent(myAuditSuccessEvent, insertStrings)

           ' Append binary data to the audit failure event entry.
           Dim binaryData() As Byte = { 7, 8, 9, 10 }
           myEventLog.WriteEvent(myAuditFailEvent, binaryData, insertStrings)

Im Beispiel wird die folgende Meldungstextdatei verwendet, die in die Ressourcenbibliothek EventLogMsgs.dll integriert ist. Eine Nachrichtentextdatei ist die Quelle, aus der die Nachrichtenressourcendatei erstellt wird. Die Nachrichtentextdatei definiert die Ressourcenbezeichner und den Text für die Kategorie, die Ereignismeldung und die Parametereinfügungszeichenfolgen.

; // EventLogMsgs.mc  
; // ********************************************************  

; // Use the following commands to build this file:  

; //   mc -s EventLogMsgs.mc  
; //   rc EventLogMsgs.rc  
; //   link /DLL /SUBSYSTEM:WINDOWS /NOENTRY /MACHINE:x86 EventLogMsgs.Res   
; // ********************************************************  

; // - Event categories -  
; // Categories must be numbered consecutively starting at 1.  
; // ********************************************************  

MessageId=0x1  
Severity=Success  
SymbolicName=INSTALL_CATEGORY  
Language=English  
Installation  
.  

MessageId=0x2  
Severity=Success  
SymbolicName=QUERY_CATEGORY  
Language=English  
Database Query  
.  

MessageId=0x3  
Severity=Success  
SymbolicName=REFRESH_CATEGORY  
Language=English  
Data Refresh  
.  

; // - Event messages -  
; // *********************************  

MessageId = 1000  
Severity = Success  
Facility = Application  
SymbolicName = AUDIT_SUCCESS_MESSAGE_ID_1000  
Language=English  
My application message text, in English, for message id 1000, called from %1.  
.  

MessageId = 1001  
Severity = Warning  
Facility = Application  
SymbolicName = AUDIT_FAILED_MESSAGE_ID_1001  
Language=English  
My application message text, in English, for message id 1001, called from %1.  
.  

MessageId = 1002  
Severity = Success  
Facility = Application  
SymbolicName = GENERIC_INFO_MESSAGE_ID_1002  
Language=English  
My generic information message in English, for message id 1002.  
.  

MessageId = 1003  
Severity = Warning  
Facility = Application  
SymbolicName = GENERIC_WARNING_MESSAGE_ID_1003  
Language=English  
My generic warning message in English, for message id 1003, called from %1.  
.  

MessageId = 1004  
Severity = Success  
Facility = Application  
SymbolicName = UPDATE_CYCLE_COMPLETE_MESSAGE_ID_1004  
Language=English  
The update cycle is complete for %%5002.  
.  

MessageId = 1005  
Severity = Warning  
Facility = Application  
SymbolicName = SERVER_CONNECTION_DOWN_MESSAGE_ID_1005  
Language=English  
The refresh operation did not complete because the connection to server %1 could not be established.  
.  

; // - Event log display name -  
; // ********************************************************  

MessageId = 5001  
Severity = Success  
Facility = Application  
SymbolicName = EVENT_LOG_DISPLAY_NAME_MSGID  
Language=English  
Sample Event Log  
.  

; // - Event message parameters -  
; //   Language independent insertion strings  
; // ********************************************************  

MessageId = 5002  
Severity = Success  
Facility = Application  
SymbolicName = EVENT_LOG_SERVICE_NAME_MSGID  
Language=English  
SVC_UPDATE.EXE  
.  

Hinweise

Verwenden Sie diese Methode, um einen lokalisierten Eintrag in das Ereignisprotokoll zu schreiben. Sie geben die Ereigniseigenschaften mit Ressourcenbezeichnern anstelle von Zeichenfolgenwerten an. Die Ereignisanzeige verwendet die Ressourcenbezeichner, um die entsprechenden Zeichenfolgen aus der lokalisierten Ressourcendatei für anzuzeigenSource. Sie müssen die Quelle bei der entsprechenden Ressourcendatei registrieren, bevor Sie Ereignisse mithilfe von Ressourcenbezeichnern schreiben.

Die Eingabe instance instance gibt die Ereignismeldung und die Eigenschaften an. Legen Sie die InstanceId der instance Eingabe für die definierte Nachricht in der Quellnachrichtenressourcendatei fest. Optional können Sie und CategoryIdEntryType der instance Eingabe festlegen, um die Kategorie und den Ereignistyp Ihres Ereigniseintrags zu definieren. Sie können auch ein Array sprachunabhängiger Zeichenfolgen angeben, die in den lokalisierten Nachrichtentext eingefügt werden sollen. Legen Sie auf null festvalues, wenn die Ereignismeldung keine Formatierungsplatzhalter für Ersatzzeichenfolgen enthält.

Sie müssen die Source -Eigenschaft für Ihre EventLog Komponente festlegen, bevor Sie verwenden WriteEvent. Die angegebene Quelle muss für das Schreiben lokalisierter Einträge in das Protokoll konfiguriert werden. Für die Quelle muss mindestens eine Nachrichtenressourcendatei definiert sein.

Sie müssen die Ereignisquelle erstellen und konfigurieren, bevor Sie den ersten Eintrag mit der Quelle schreiben. Create die neue Ereignisquelle während der Installation Ihrer Anwendung. Dadurch kann das Betriebssystem die Liste der registrierten Ereignisquellen und deren Konfiguration aktualisieren. Wenn das Betriebssystem die Liste der Ereignisquellen nicht aktualisiert hat und Sie versuchen, ein Ereignis mit der neuen Quelle zu schreiben, schlägt der Schreibvorgang fehl. Sie können eine neue Quelle mit oder EventLogInstallermit der CreateEventSource -Methode konfigurieren. Sie müssen über Administratorrechte auf dem Computer verfügen, um eine neue Ereignisquelle erstellen zu können.

Die Quelle muss entweder zum Schreiben lokalisierter Einträge oder zum Schreiben direkter Zeichenfolgen konfiguriert werden. Verwenden Sie die WriteEntry -Methode, wenn Ihre Anwendung Zeichenfolgenwerte direkt in das Ereignisprotokoll schreibt.

Wenn Ihre Anwendung Einträge mit Ressourcenbezeichnern und Zeichenfolgenwerten schreibt, müssen Sie zwei separate Quellen registrieren. Konfigurieren Sie beispielsweise eine Quelle mit Ressourcendateien, und verwenden Sie diese Quelle dann in der WriteEvent -Methode, um Einträge mithilfe von Ressourcenbezeichnern in das Ereignisprotokoll zu schreiben. Erstellen Sie dann eine andere Quelle ohne Ressourcendateien, und verwenden Sie diese Quelle in der WriteEntry -Methode, um Zeichenfolgen mithilfe dieser Quelle direkt in das Ereignisprotokoll zu schreiben.

Hinweis

Wenn Sie einen Eintrag auf einen Remotecomputer schreiben, entspricht der Wert der message Zeichenfolge möglicherweise nicht den Erwartungen, wenn auf dem Remotecomputer die .NET Framework nicht ausgeführt wird. Außerdem kann die message Zeichenfolge nicht %n enthalten, wobei n ein ganzzahliger Wert ist (z. B. %1), da die Ereignisanzeige ihn als Einfügezeichenfolge behandelt. Da eine IPv6-Adresse (Internet Protocol, Version 6) diese Zeichenfolge enthalten kann, können Sie keine Ereignismeldung protokollieren, die eine IPv6-Adresse enthält.

Weitere Informationen

Gilt für:

WriteEvent(EventInstance, Byte[], Object[])

Quelle:
EventLog.cs
Quelle:
EventLog.cs
Quelle:
EventLog.cs

Schreibt einen Ereignisprotokolleintrag mit den angegebenen Ereignisdaten, Meldungsersetzungszeichenfolgen und zugeordneten Binärdaten.

public:
 void WriteEvent(System::Diagnostics::EventInstance ^ instance, cli::array <System::Byte> ^ data, ... cli::array <System::Object ^> ^ values);
public void WriteEvent (System.Diagnostics.EventInstance instance, byte[] data, params object[] values);
[System.Runtime.InteropServices.ComVisible(false)]
public void WriteEvent (System.Diagnostics.EventInstance instance, byte[] data, params object[] values);
member this.WriteEvent : System.Diagnostics.EventInstance * byte[] * obj[] -> unit
[<System.Runtime.InteropServices.ComVisible(false)>]
member this.WriteEvent : System.Diagnostics.EventInstance * byte[] * obj[] -> unit
Public Sub WriteEvent (instance As EventInstance, data As Byte(), ParamArray values As Object())

Parameter

instance
EventInstance

Eine EventInstance-Instanz, die einen lokalisierten Ereignisprotokolleintrag darstellt.

data
Byte[]

Ein Bytearray mit den dem Eintrag zugeordneten Binärdaten.

values
Object[]

Ein Array von Zeichenfolgen, die mit dem Meldungstext des Ereignisprotokolleintrags zusammengeführt werden sollen.

Attribute

Ausnahmen

Die Source-Eigenschaft von EventLog wurde nicht festgelegt.

- oder -

Die Methode hat versucht, eine neue Ereignisquelle zu registrieren, der Computername in MachineName ist jedoch ungültig.

- oder -

Die Quelle ist bereits für ein anderes Ereignisprotokoll registriert.

- oder -

instance.InstanceId ist kleiner als null oder größer als UInt16.MaxValue.

- oder -

values enthält mehr als 256 Elemente.

- oder -

Eines der values-Elemente ist länger als 32.766 Bytes.

- oder -

Der Quellenname führt dazu, dass der Registrierungsschlüsselpfad länger als 254 Zeichen ist.

instance ist null.

Der Registrierungsschlüssel für das Ereignisprotokoll konnte nicht geöffnet werden.

Das Betriebssystem hat beim Schreiben des Ereigniseintrags in das Ereignisprotokoll einen Fehler gemeldet. Es ist kein Windows-Fehlercode verfügbar.

Beispiele

Im folgenden Beispiel werden zwei Überwachungseinträge in das Ereignisprotokoll myNewLoggeschrieben. Im Beispiel werden eine neue Ereignisquelle und ein neues Ereignisprotokoll erstellt, wenn sie auf dem lokalen Computer nicht vorhanden sind. Der Ereignismeldungstext wird mithilfe eines Ressourcenbezeichners in einer Ressourcendatei angegeben.

// Create the event source if it does not exist.
String^ sourceName = "SampleApplicationSource";
if (  !EventLog::SourceExists( sourceName ) )
{
   
   // Call a local method to register the event log source
   // for the event log "myNewLog."  Use the resource file
   // EventLogMsgs.dll in the current directory for message text.
   String^ messageFile = String::Format( "{0}\\{1}", System::Environment::CurrentDirectory, "EventLogMsgs.dll" );
   CreateEventSourceSample1( messageFile );
}

// Get the event log corresponding to the existing source.
String^ myLogName = EventLog::LogNameFromSourceName( sourceName, "." );
EventLog^ myEventLog = gcnew EventLog( myLogName,".",sourceName );

// Define two audit events.
// The message identifiers correspond to the message text in the
// message resource file defined for the source.
EventInstance ^ myAuditSuccessEvent = gcnew EventInstance( AuditSuccessMsgId,0,EventLogEntryType::SuccessAudit );
EventInstance ^ myAuditFailEvent = gcnew EventInstance( AuditFailedMsgId,0,EventLogEntryType::FailureAudit );

// Insert the method name into the event log message.
array<String^>^insertStrings = {"EventLogSamples.WriteEventSample1"};

// Write the events to the event log.
myEventLog->WriteEvent( myAuditSuccessEvent, insertStrings );

// Append binary data to the audit failure event entry.
array<Byte>^binaryData = {3,4,5,6};
myEventLog->WriteEvent( myAuditFailEvent, binaryData, insertStrings );

// Create the event source if it does not exist.
string sourceName = "SampleApplicationSource";
if(!EventLog.SourceExists(sourceName))
{
    // Call a local method to register the event log source
    // for the event log "myNewLog."  Use the resource file
    // EventLogMsgs.dll in the current directory for message text.

    string messageFile =  String.Format("{0}\\{1}",
        System.Environment.CurrentDirectory,
        "EventLogMsgs.dll");

    CreateEventSourceSample1(messageFile);
}

// Get the event log corresponding to the existing source.
string myLogName = EventLog.LogNameFromSourceName(sourceName,".");

EventLog myEventLog = new EventLog(myLogName, ".", sourceName);

// Define two audit events.

// The message identifiers correspond to the message text in the
// message resource file defined for the source.
EventInstance myAuditSuccessEvent = new EventInstance(AuditSuccessMsgId, 0, EventLogEntryType.SuccessAudit);
EventInstance myAuditFailEvent = new EventInstance(AuditFailedMsgId, 0, EventLogEntryType.FailureAudit);

// Insert the method name into the event log message.
string [] insertStrings = {"EventLogSamples.WriteEventSample1"};

// Write the events to the event log.

myEventLog.WriteEvent(myAuditSuccessEvent, insertStrings);

// Append binary data to the audit failure event entry.
byte [] binaryData = { 3, 4, 5, 6 };
myEventLog.WriteEvent(myAuditFailEvent, binaryData, insertStrings);

           Dim sourceName As String = "SampleApplicationSource"

           ' Create the event source if it does not exist.
           If Not EventLog.SourceExists(sourceName)
  
               ' Call a local method to register the event log source
               ' for the event log "myNewLog."  Use the resource file
               ' EventLogMsgs.dll in the current directory for message text.

               Dim messageFile As String =  String.Format("{0}\\{1}", _
                   System.Environment.CurrentDirectory, _
                   "EventLogMsgs.dll")

               CreateEventSourceSample1(messageFile)
           End If 

           ' Get the event log corresponding to the existing source.
           Dim myLogName As String = EventLog.LogNameFromSourceName(sourceName,".")
       
           Dim myEventLog As EventLog = new EventLog(myLogName, ".", sourceName)

           ' Define two audit events.
           Dim myAuditSuccessEvent As EventInstance = new EventInstance(AuditSuccessMsgId, 0, EventLogEntryType.SuccessAudit)
           Dim myAuditFailEvent As EventInstance = new EventInstance(AuditFailedMsgId, 0, EventLogEntryType.FailureAudit)

           ' Insert the method name into the event log message.
           Dim insertStrings() As String = {"EventLogSamples.WriteEventSample1"}
           
           ' Write the events to the event log.

           myEventLog.WriteEvent(myAuditSuccessEvent, insertStrings)

           ' Append binary data to the audit failure event entry.
           Dim binaryData() As Byte = { 7, 8, 9, 10 }
           myEventLog.WriteEvent(myAuditFailEvent, binaryData, insertStrings)

Im Beispiel wird die folgende Meldungstextdatei verwendet, die in die Ressourcenbibliothek EventLogMsgs.dll integriert ist. Eine Nachrichtentextdatei ist die Quelle, aus der die Nachrichtenressourcendatei erstellt wird. Die Nachrichtentextdatei definiert die Ressourcenbezeichner und den Text für die Kategorie, die Ereignismeldung und die Parametereinfügungszeichenfolgen.

; // EventLogMsgs.mc  
; // ********************************************************  

; // Use the following commands to build this file:  

; //   mc -s EventLogMsgs.mc  
; //   rc EventLogMsgs.rc  
; //   link /DLL /SUBSYSTEM:WINDOWS /NOENTRY /MACHINE:x86 EventLogMsgs.Res   
; // ********************************************************  

; // - Event categories -  
; // Categories must be numbered consecutively starting at 1.  
; // ********************************************************  

MessageId=0x1  
Severity=Success  
SymbolicName=INSTALL_CATEGORY  
Language=English  
Installation  
.  

MessageId=0x2  
Severity=Success  
SymbolicName=QUERY_CATEGORY  
Language=English  
Database Query  
.  

MessageId=0x3  
Severity=Success  
SymbolicName=REFRESH_CATEGORY  
Language=English  
Data Refresh  
.  

; // - Event messages -  
; // *********************************  

MessageId = 1000  
Severity = Success  
Facility = Application  
SymbolicName = AUDIT_SUCCESS_MESSAGE_ID_1000  
Language=English  
My application message text, in English, for message id 1000, called from %1.  
.  

MessageId = 1001  
Severity = Warning  
Facility = Application  
SymbolicName = AUDIT_FAILED_MESSAGE_ID_1001  
Language=English  
My application message text, in English, for message id 1001, called from %1.  
.  

MessageId = 1002  
Severity = Success  
Facility = Application  
SymbolicName = GENERIC_INFO_MESSAGE_ID_1002  
Language=English  
My generic information message in English, for message id 1002.  
.  

MessageId = 1003  
Severity = Warning  
Facility = Application  
SymbolicName = GENERIC_WARNING_MESSAGE_ID_1003  
Language=English  
My generic warning message in English, for message id 1003, called from %1.  
.  

MessageId = 1004  
Severity = Success  
Facility = Application  
SymbolicName = UPDATE_CYCLE_COMPLETE_MESSAGE_ID_1004  
Language=English  
The update cycle is complete for %%5002.  
.  

MessageId = 1005  
Severity = Warning  
Facility = Application  
SymbolicName = SERVER_CONNECTION_DOWN_MESSAGE_ID_1005  
Language=English  
The refresh operation did not complete because the connection to server %1 could not be established.  
.  

; // - Event log display name -  
; // ********************************************************  

MessageId = 5001  
Severity = Success  
Facility = Application  
SymbolicName = EVENT_LOG_DISPLAY_NAME_MSGID  
Language=English  
Sample Event Log  
.  

; // - Event message parameters -  
; //   Language independent insertion strings  
; // ********************************************************  

MessageId = 5002  
Severity = Success  
Facility = Application  
SymbolicName = EVENT_LOG_SERVICE_NAME_MSGID  
Language=English  
SVC_UPDATE.EXE  
.  

Hinweise

Verwenden Sie diese Methode, um einen lokalisierten Eintrag mit zusätzlichen ereignisspezifischen Daten in das Ereignisprotokoll zu schreiben. Sie geben die Ereigniseigenschaften mit Ressourcenbezeichnern anstelle von Zeichenfolgenwerten an. Die Ereignisanzeige verwendet die Ressourcenbezeichner, um die entsprechenden Zeichenfolgen aus der lokalisierten Ressourcendatei für anzuzeigenSource. Sie müssen die Quelle bei der entsprechenden Ressourcendatei registrieren, bevor Sie Ereignisse mithilfe von Ressourcenbezeichnern schreiben.

Die Eingabe instance instance gibt die Ereignismeldung und die Eigenschaften an. Legen Sie die InstanceId der instance Eingabe für die definierte Nachricht in der Quellnachrichtenressourcendatei fest. Optional können Sie und CategoryIdEntryType der instance Eingabe festlegen, um die Kategorie und den Ereignistyp Ihres Ereigniseintrags zu definieren. Sie können auch ein Array sprachunabhängiger Zeichenfolgen angeben, die in den lokalisierten Nachrichtentext eingefügt werden sollen. Legen Sie auf null festvalues, wenn die Ereignismeldung keine Formatierungsplatzhalter für Ersatzzeichenfolgen enthält.

Geben Sie Binärdaten mit einem Ereignis an, wenn zusätzliche Details für das Ereignis angegeben werden müssen. Verwenden Sie beispielsweise den data -Parameter, um Informationen zu einem bestimmten Fehler einzuschließen. Die Ereignisanzeige interpretiert die zugeordneten Ereignisdaten nicht, sie zeigt die Daten in einem kombinierten Hexadezimal- und Textformat an. Ereignisspezifische Daten sparsam verwenden; Fügen Sie es nur ein, wenn Sie sicher sind, dass es nützlich ist. Sie können auch ereignisspezifische Daten verwenden, um Informationen zu speichern, die die Anwendung unabhängig von der Ereignisanzeige verarbeiten kann. Sie können beispielsweise einen Viewer speziell für Ihre Ereignisse schreiben oder ein Programm schreiben, das das Ereignisprotokoll scannt und Berichte erstellt, die Informationen aus den ereignisspezifischen Daten enthalten.

Sie müssen die -Eigenschaft für ihre EventLog Komponente vor der Source -Komponente festlegen, bevor Sie verwendenWriteEvent. Die angegebene Quelle muss für das Schreiben lokalisierter Einträge in das Protokoll konfiguriert werden. Für die Quelle muss mindestens eine Nachrichtenressourcendatei definiert sein.

Sie müssen die Ereignisquelle erstellen und konfigurieren, bevor Sie den ersten Eintrag mit der Quelle schreiben. Create die neue Ereignisquelle während der Installation Ihrer Anwendung. Dadurch kann das Betriebssystem die Liste der registrierten Ereignisquellen und deren Konfiguration aktualisieren. Wenn das Betriebssystem die Liste der Ereignisquellen nicht aktualisiert hat und Sie versuchen, ein Ereignis mit der neuen Quelle zu schreiben, schlägt der Schreibvorgang fehl. Sie können eine neue Quelle mit oder EventLogInstallermit der CreateEventSource -Methode konfigurieren. Sie müssen über Administratorrechte auf dem Computer verfügen, um eine neue Ereignisquelle erstellen zu können.

Hinweis

Wenn Sie keinen für Ihre EventLog instance angebenMachineName, bevor Sie aufrufenWriteEvent, wird der lokale Computer (".") angenommen.

Die Quelle muss entweder zum Schreiben lokalisierter Einträge oder zum Schreiben direkter Zeichenfolgen konfiguriert werden. Verwenden Sie die WriteEntry -Methode, wenn Ihre Anwendung Zeichenfolgenwerte direkt in das Ereignisprotokoll schreibt.

Wenn Ihre Anwendung Einträge mit Ressourcenbezeichnern und Zeichenfolgenwerten schreibt, müssen Sie zwei separate Quellen registrieren. Konfigurieren Sie beispielsweise eine Quelle mit Ressourcendateien, und verwenden Sie diese Quelle dann in der WriteEvent -Methode, um Einträge mithilfe von Ressourcenbezeichnern in das Ereignisprotokoll zu schreiben. Erstellen Sie dann eine andere Quelle ohne Ressourcendateien, und verwenden Sie diese Quelle in der WriteEntry -Methode, um Zeichenfolgen mithilfe dieser Quelle direkt in das Ereignisprotokoll zu schreiben.

Hinweis

Wenn Sie einen Eintrag auf einen Remotecomputer schreiben, entspricht der Wert der message Zeichenfolge möglicherweise nicht den Erwartungen, wenn auf dem Remotecomputer die .NET Framework nicht ausgeführt wird. Außerdem kann die message Zeichenfolge nicht %n enthalten, wobei n ein ganzzahliger Wert ist (z. B. %1), da die Ereignisanzeige ihn als Einfügezeichenfolge behandelt. Da eine IPv6-Adresse (Internet Protocol, Version 6) diese Zeichenfolge enthalten kann, können Sie keine Ereignismeldung protokollieren, die eine IPv6-Adresse enthält.

Weitere Informationen

Gilt für:

WriteEvent(String, EventInstance, Byte[], Object[])

Quelle:
EventLog.cs
Quelle:
EventLog.cs
Quelle:
EventLog.cs

Schreibt einen Ereignisprotokolleintrag mit den angegebenen Ereignisdaten, Meldungsersetzungszeichenfolgen und zugeordneten Binärdaten und unter Verwendung der angegebenen registrierten Ereignisquelle.

public:
 static void WriteEvent(System::String ^ source, System::Diagnostics::EventInstance ^ instance, cli::array <System::Byte> ^ data, ... cli::array <System::Object ^> ^ values);
public static void WriteEvent (string source, System.Diagnostics.EventInstance instance, byte[] data, params object[] values);
static member WriteEvent : string * System.Diagnostics.EventInstance * byte[] * obj[] -> unit
Public Shared Sub WriteEvent (source As String, instance As EventInstance, data As Byte(), ParamArray values As Object())

Parameter

source
String

Der Name der für die Anwendung auf dem angegebenen Computer registrierten Ereignisquelle.

instance
EventInstance

Eine EventInstance-Instanz, die einen lokalisierten Ereignisprotokolleintrag darstellt.

data
Byte[]

Ein Bytearray mit den dem Eintrag zugeordneten Binärdaten.

values
Object[]

Ein Array von Zeichenfolgen, die mit dem Meldungstext des Ereignisprotokolleintrags zusammengeführt werden sollen.

Ausnahmen

Der source-Wert ist eine leere Zeichenfolge ("").

- oder -

Der source-Wert ist null.

- oder -

instance.InstanceId ist kleiner als null oder größer als UInt16.MaxValue.

- oder -

values enthält mehr als 256 Elemente.

- oder -

Eines der values-Elemente ist länger als 32.766 Bytes.

- oder -

Der Quellenname führt dazu, dass der Registrierungsschlüsselpfad länger als 254 Zeichen ist.

instance ist null.

Der Registrierungsschlüssel für das Ereignisprotokoll konnte nicht geöffnet werden.

Das Betriebssystem hat beim Schreiben des Ereigniseintrags in das Ereignisprotokoll einen Fehler gemeldet. Es ist kein Windows-Fehlercode verfügbar.

Beispiele

Im folgenden Beispiel werden ein Informationsereigniseintrag und ein Warnungsereigniseintrag in ein vorhandenes Ereignisprotokoll geschrieben. Der Ereignismeldungstext wird mithilfe eines Ressourcenbezeichners in einer Ressourcendatei angegeben. Im Beispiel wird davon ausgegangen, dass die entsprechende Ressourcendatei für die Quelle registriert wurde.

String^ sourceName = "SampleApplicationSource";
if ( EventLog::SourceExists( sourceName ) )
{
   
   // Define an informational event and a warning event.
   // The message identifiers correspond to the message text in the
   // message resource file defined for the source.
   EventInstance ^ myInfoEvent = gcnew EventInstance( InformationMsgId,0,EventLogEntryType::Information );
   EventInstance ^ myWarningEvent = gcnew EventInstance( WarningMsgId,0,EventLogEntryType::Warning );
   
   // Insert the method name into the event log message.
   array<String^>^insertStrings = {"EventLogSamples.WriteEventSample2"};
   
   // Write the events to the event log.
   EventLog::WriteEvent( sourceName, myInfoEvent, 0 );
   
   // Append binary data to the warning event entry.
   array<Byte>^binaryData = {7,8,9,10};
   EventLog::WriteEvent( sourceName, myWarningEvent, binaryData, insertStrings );
}
else
{
   Console::WriteLine( "Warning - event source {0} not registered", sourceName );
}

string sourceName = "SampleApplicationSource";
if(EventLog.SourceExists(sourceName))
{

    // Define an informational event and a warning event.

    // The message identifiers correspond to the message text in the
    // message resource file defined for the source.
    EventInstance myInfoEvent = new EventInstance(InformationMsgId, 0, EventLogEntryType.Information);
    EventInstance myWarningEvent = new EventInstance(WarningMsgId, 0, EventLogEntryType.Warning);

    // Insert the method name into the event log message.
    string [] insertStrings = {"EventLogSamples.WriteEventSample2"};

    // Write the events to the event log.

    EventLog.WriteEvent(sourceName, myInfoEvent);

    // Append binary data to the warning event entry.
    byte [] binaryData = { 7, 8, 9, 10 };
    EventLog.WriteEvent(sourceName, myWarningEvent, binaryData, insertStrings);
}
else
{
    Console.WriteLine("Warning - event source {0} not registered",
        sourceName);
}
           Dim sourceName As String = "SampleApplicationSource"
           If EventLog.SourceExists(sourceName)
  
               ' Define an informational event and a warning event.

               ' The message identifiers correspond to the message text in the
               ' message resource file defined for the source.
               Dim myInfoEvent As EventInstance = new EventInstance(InformationMsgId, 0, EventLogEntryType.Information)
               Dim myWarningEvent As EventInstance = new EventInstance(WarningMsgId, 0, EventLogEntryType.Warning)

               ' Insert the method name into the event log message.
               Dim insertStrings() As String = {"EventLogSamples.WriteEventSample2"}
           
               ' Write the events to the event log.

               EventLog.WriteEvent(sourceName, myInfoEvent, insertStrings)

               ' Append binary data to the warning event entry.
               Dim binaryData() As Byte = { 7, 8, 9, 10 }
               EventLog.WriteEvent(sourceName, myWarningEvent, binaryData, insertStrings)
           Else 
               Console.WriteLine("Warning - event source {0} not registered", _
                   sourceName)
           End If

Im Beispiel wird die folgende Meldungstextdatei verwendet, die in die Ressourcenbibliothek EventLogMsgs.dll integriert ist. Eine Nachrichtentextdatei ist die Quelle, aus der die Nachrichtenressourcendatei erstellt wird. Die Nachrichtentextdatei definiert die Ressourcenbezeichner und den Text für die Kategorie, die Ereignismeldung und die Parametereinfügungszeichenfolgen.

; // EventLogMsgs.mc  
; // ********************************************************  

; // Use the following commands to build this file:  

; //   mc -s EventLogMsgs.mc  
; //   rc EventLogMsgs.rc  
; //   link /DLL /SUBSYSTEM:WINDOWS /NOENTRY /MACHINE:x86 EventLogMsgs.Res   
; // ********************************************************  

; // - Event categories -  
; // Categories must be numbered consecutively starting at 1.  
; // ********************************************************  

MessageId=0x1  
Severity=Success  
SymbolicName=INSTALL_CATEGORY  
Language=English  
Installation  
.  

MessageId=0x2  
Severity=Success  
SymbolicName=QUERY_CATEGORY  
Language=English  
Database Query  
.  

MessageId=0x3  
Severity=Success  
SymbolicName=REFRESH_CATEGORY  
Language=English  
Data Refresh  
.  

; // - Event messages -  
; // *********************************  

MessageId = 1000  
Severity = Success  
Facility = Application  
SymbolicName = AUDIT_SUCCESS_MESSAGE_ID_1000  
Language=English  
My application message text, in English, for message id 1000, called from %1.  
.  

MessageId = 1001  
Severity = Warning  
Facility = Application  
SymbolicName = AUDIT_FAILED_MESSAGE_ID_1001  
Language=English  
My application message text, in English, for message id 1001, called from %1.  
.  

MessageId = 1002  
Severity = Success  
Facility = Application  
SymbolicName = GENERIC_INFO_MESSAGE_ID_1002  
Language=English  
My generic information message in English, for message id 1002.  
.  

MessageId = 1003  
Severity = Warning  
Facility = Application  
SymbolicName = GENERIC_WARNING_MESSAGE_ID_1003  
Language=English  
My generic warning message in English, for message id 1003, called from %1.  
.  

MessageId = 1004  
Severity = Success  
Facility = Application  
SymbolicName = UPDATE_CYCLE_COMPLETE_MESSAGE_ID_1004  
Language=English  
The update cycle is complete for %%5002.  
.  

MessageId = 1005  
Severity = Warning  
Facility = Application  
SymbolicName = SERVER_CONNECTION_DOWN_MESSAGE_ID_1005  
Language=English  
The refresh operation did not complete because the connection to server %1 could not be established.  
.  

; // - Event log display name -  
; // ********************************************************  

MessageId = 5001  
Severity = Success  
Facility = Application  
SymbolicName = EVENT_LOG_DISPLAY_NAME_MSGID  
Language=English  
Sample Event Log  
.  

; // - Event message parameters -  
; //   Language independent insertion strings  
; // ********************************************************  

MessageId = 5002  
Severity = Success  
Facility = Application  
SymbolicName = EVENT_LOG_SERVICE_NAME_MSGID  
Language=English  
SVC_UPDATE.EXE  
.  

Hinweise

Verwenden Sie diese Methode, um einen lokalisierten Eintrag mit zusätzlichen ereignisspezifischen Daten in das Ereignisprotokoll zu schreiben, wobei eine Quelle verwendet wird, die bereits als Ereignisquelle für das entsprechende Protokoll registriert ist. Sie geben die Ereigniseigenschaften mit Ressourcenbezeichnern anstelle von Zeichenfolgenwerten an. Der Ereignisanzeige verwendet die Ressourcenbezeichner, um die entsprechenden Zeichenfolgen aus der lokalisierten Ressourcendatei für die Quelle anzuzeigen. Sie müssen die Quelle mit der entsprechenden Ressourcendatei registrieren, bevor Sie Ereignisse mithilfe von Ressourcenbezeichnern schreiben.

Die Eingabe instance instance gibt die Ereignismeldung und die Eigenschaften an. Legen Sie die InstanceId der instance Eingabe für die definierte Nachricht in der Quellnachrichtenressourcendatei fest. Optional können Sie das CategoryId und EntryType der instance Eingabe festlegen, um die Kategorie und den Ereignistyp Ihres Ereigniseintrags zu definieren. Sie können auch ein Array sprachunabhängiger Zeichenfolgen angeben, die in den lokalisierten Nachrichtentext eingefügt werden sollen. Legen Sie auf fest valuesnull , wenn die Ereignisnachricht keine Formatierungsplatzhalter für Ersatzzeichenfolgen enthält.

Geben Sie Binärdaten mit einem Ereignis an, wenn zusätzliche Details für das Ereignis angegeben werden müssen. Verwenden Sie beispielsweise den data Parameter, um Informationen zu einem bestimmten Fehler einzuschließen. Die Ereignisanzeige interpretiert die zugeordneten Ereignisdaten nicht. Sie zeigt die Daten in einem kombinierten Hexadezimal- und Textformat an. Verwenden Sie ereignisspezifische Daten sparsam; fügen Sie es nur ein, wenn Sie sicher sind, dass es nützlich ist. Sie können auch ereignisspezifische Daten verwenden, um Informationen zu speichern, die die Anwendung unabhängig von der Ereignisanzeige verarbeiten kann. Beispielsweise können Sie einen Viewer speziell für Ihre Ereignisse schreiben oder ein Programm schreiben, das das Ereignisprotokoll scannt und Berichte erstellt, die Informationen aus den ereignisspezifischen Daten enthalten.

Die angegebene Quelle muss für ein Ereignisprotokoll registriert werden, bevor Sie verwenden WriteEvent. Die angegebene Quelle muss für das Schreiben lokalisierter Einträge in das Protokoll konfiguriert werden. Für die Quelle muss mindestens eine Nachrichtenressourcendatei definiert sein.

Sie müssen die Ereignisquelle erstellen und konfigurieren, bevor Sie den ersten Eintrag mit der Quelle schreiben. Create die neue Ereignisquelle während der Installation Ihrer Anwendung. Dadurch kann das Betriebssystem die Liste der registrierten Ereignisquellen und deren Konfiguration aktualisieren. Wenn das Betriebssystem seine Liste der Ereignisquellen nicht aktualisiert hat und Sie versuchen, ein Ereignis mit der neuen Quelle zu schreiben, schlägt der Schreibvorgang fehl. Sie können eine neue Quelle mit oder EventLogInstallermit der CreateEventSource -Methode konfigurieren. Sie müssen über Administratorrechte auf dem Computer verfügen, um eine neue Ereignisquelle zu erstellen.

Die Quelle muss entweder für das Schreiben lokalisierter Einträge oder für das Schreiben direkter Zeichenfolgen konfiguriert werden. Verwenden Sie die WriteEntry -Methode, wenn Ihre Anwendung Zeichenfolgenwerte direkt in das Ereignisprotokoll schreibt.

Wenn Ihre Anwendung Einträge mit Ressourcenbezeichnern und Zeichenfolgenwerten schreibt, müssen Sie zwei separate Quellen registrieren. Konfigurieren Sie beispielsweise eine Quelle mit Ressourcendateien, und verwenden Sie diese Quelle in der WriteEvent -Methode, um Einträge mithilfe von Ressourcenbezeichnern in das Ereignisprotokoll zu schreiben. Erstellen Sie dann eine andere Quelle ohne Ressourcendateien, und verwenden Sie diese Quelle in der WriteEntry -Methode, um Zeichenfolgen mithilfe dieser Quelle direkt in das Ereignisprotokoll zu schreiben.

Weitere Informationen

Gilt für: