EventLog.WriteEvent Methode

Definitie

Hiermee schrijft u een gelokaliseerde gebeurtenisvermelding naar het gebeurtenislogboek.

Overloads

Name Description
WriteEvent(String, EventInstance, Object[])

Hiermee schrijft u een vermelding in het gebeurtenislogboek met de opgegeven gebeurtenisgegevens en vervangende tekenreeksen voor berichten, met behulp van de opgegeven geregistreerde gebeurtenisbron.

WriteEvent(EventInstance, Object[])

Hiermee schrijft u een gelokaliseerde vermelding naar het gebeurtenislogboek.

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

Hiermee schrijft u een gebeurtenislogboekvermelding met de opgegeven gebeurtenisgegevens, berichtvervangingstekenreeksen en bijbehorende binaire gegevens.

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

Hiermee schrijft u een gebeurtenislogboekvermelding met de opgegeven gebeurtenisgegevens, berichtvervangingstekenreeksen en bijbehorende binaire gegevens, en gebruikt u de opgegeven geregistreerde gebeurtenisbron.

WriteEvent(String, EventInstance, Object[])

Hiermee schrijft u een vermelding in het gebeurtenislogboek met de opgegeven gebeurtenisgegevens en vervangende tekenreeksen voor berichten, met behulp van de opgegeven geregistreerde gebeurtenisbron.

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())

Parameters

source
String

De naam van de gebeurtenisbron die is geregistreerd voor de toepassing op de opgegeven computer.

instance
EventInstance

Een EventInstance exemplaar dat een gelokaliseerd gebeurtenislogboekitem vertegenwoordigt.

values
Object[]

Een matrix met tekenreeksen die moeten worden samengevoegd in de berichttekst van de vermelding van het gebeurtenislogboek.

Uitzonderingen

De source waarde is een lege tekenreeks ("").

– of –

De source waarde is null.

– of –

instance.InstanceId is kleiner dan nul of groter dan UInt16.MaxValue.

– of –

values heeft meer dan 256 elementen.

– of –

Een van de values elementen is langer dan 32766 bytes.

– of –

De bronnaam resulteert in een registersleutelpad dat langer is dan 254 tekens.

instance is null.

De registersleutel voor het gebeurtenislogboek kan niet worden geopend.

Het besturingssysteem heeft een fout gerapporteerd bij het schrijven van de gebeurtenisvermelding in het gebeurtenislogboek. Er is geen Windows foutcode beschikbaar.

Voorbeelden

In het volgende voorbeeld worden een informatieve gebeurtenisvermelding en een waarschuwingsvermelding naar een bestaand gebeurtenislogboek geschreven. De tekst van het gebeurtenisbericht wordt opgegeven met behulp van een resource-id in een resourcebestand. In het voorbeeld wordt ervan uitgegaan dat het bijbehorende resourcebestand is geregistreerd voor de bron.


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

In het voorbeeld wordt het volgende berichttekstbestand gebruikt dat is ingebouwd in de resourcebibliotheek EventLogMsgs.dll. Een berichttekstbestand is de bron van waaruit het bronbestand van het bericht wordt gemaakt. Het berichttekstbestand definieert de resource-id's en tekst voor de categorie, gebeurtenisbericht en parameterinvoegreeksen.

; // 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
.

Opmerkingen

Gebruik deze methode om een gelokaliseerde vermelding naar het gebeurtenislogboek te schrijven met behulp van een bron die al is geregistreerd als gebeurtenisbron voor het juiste logboek. U geeft de gebeurteniseigenschappen op met resource-id's in plaats van tekenreekswaarden. De Logboeken gebruikt de resource-id's om de bijbehorende tekenreeksen uit het gelokaliseerde resourcebestand voor de bron weer te geven. U moet de bron registreren bij het bijbehorende resourcebestand voordat u gebeurtenissen schrijft met behulp van resource-id's.

Het invoerexemplaren instance specificeert het gebeurtenisbericht en de eigenschappen. Stel de InstanceId invoer voor het instance gedefinieerde bericht in het bronberichtbronbestand in. U kunt desgewenst de CategoryId en EntryType invoer instance instellen om de categorie en het gebeurtenistype van uw gebeurtenisvermelding te definiëren. U kunt ook een matrix met taalonafhankelijke tekenreeksen opgeven die moeten worden ingevoegd in de gelokaliseerde berichttekst. Ingesteld values op null als het gebeurtenisbericht geen tijdelijke aanduidingen voor vervangende tekenreeksen bevat.

De opgegeven bron moet worden geregistreerd voor een gebeurtenislogboek voordat u deze gebruikt WriteEvent. De opgegeven bron moet worden geconfigureerd voor het schrijven van gelokaliseerde vermeldingen in het logboek; de bron moet minimaal een berichtbronbestand hebben gedefinieerd.

U moet de gebeurtenisbron maken en configureren voordat u de eerste vermelding met de bron schrijft. Maak de nieuwe gebeurtenisbron tijdens de installatie van uw toepassing. Hierdoor kan het besturingssysteem de lijst met geregistreerde gebeurtenisbronnen en hun configuratie vernieuwen. Als het besturingssysteem de lijst met gebeurtenisbronnen niet heeft vernieuwd en u probeert een gebeurtenis te schrijven met de nieuwe bron, mislukt de schrijfbewerking. U kunt een nieuwe bron configureren met behulp van een EventLogInstallerof met behulp van de CreateEventSource methode. U moet beheerdersrechten hebben op de computer om een nieuwe gebeurtenisbron te maken.

De bron moet worden geconfigureerd voor het schrijven van gelokaliseerde vermeldingen of voor het schrijven van directe tekenreeksen. Gebruik de WriteEntry methode als uw toepassing tekenreekswaarden rechtstreeks naar het gebeurtenislogboek schrijft.

Als uw toepassing vermeldingen schrijft met zowel resource-id's als tekenreekswaarden, moet u twee afzonderlijke bronnen registreren. Configureer bijvoorbeeld één bron met resourcebestanden en gebruik die bron in de WriteEvent methode om vermeldingen te schrijven met behulp van resource-id's naar het gebeurtenislogboek. Maak vervolgens een andere bron zonder resourcebestanden en gebruik die bron in de WriteEntry methode om tekenreeksen rechtstreeks naar het gebeurtenislogboek te schrijven met behulp van die bron.

Zie ook

Van toepassing op

WriteEvent(EventInstance, Object[])

Hiermee schrijft u een gelokaliseerde vermelding naar het gebeurtenislogboek.

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

Parameters

instance
EventInstance

Een EventInstance exemplaar dat een gelokaliseerd gebeurtenislogboekitem vertegenwoordigt.

values
Object[]

Een matrix met tekenreeksen die moeten worden samengevoegd in de berichttekst van de vermelding van het gebeurtenislogboek.

Kenmerken

Uitzonderingen

De Source eigenschap van de EventLog eigenschap is niet ingesteld.

– of –

De methode heeft geprobeerd een nieuwe gebeurtenisbron te registreren, maar de computernaam is MachineName ongeldig.

– of –

De bron is al geregistreerd voor een ander gebeurtenislogboek.

– of –

instance.InstanceId is kleiner dan nul of groter dan UInt16.MaxValue.

– of –

values heeft meer dan 256 elementen.

– of –

Een van de values elementen is langer dan 32766 bytes.

– of –

De bronnaam resulteert in een registersleutelpad dat langer is dan 254 tekens.

instance is null.

De registersleutel voor het gebeurtenislogboek kan niet worden geopend.

Het besturingssysteem heeft een fout gerapporteerd bij het schrijven van de gebeurtenisvermelding in het gebeurtenislogboek. Er is geen Windows foutcode beschikbaar.

Voorbeelden

In het volgende voorbeeld worden twee controlevermeldingen naar het gebeurtenislogboek myNewLoggeschreven. In het voorbeeld wordt een nieuwe gebeurtenisbron en een nieuw gebeurtenislogboek gemaakt als deze niet bestaan op de lokale computer. De tekst van het gebeurtenisbericht wordt opgegeven met behulp van een resource-id in een resourcebestand.


// 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)

In het voorbeeld wordt het volgende berichttekstbestand gebruikt dat is ingebouwd in de resourcebibliotheek EventLogMsgs.dll. Een berichttekstbestand is de bron van waaruit het bronbestand van het bericht wordt gemaakt. Het berichttekstbestand definieert de resource-id's en tekst voor de categorie, gebeurtenisbericht en parameterinvoegreeksen.

; // 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
.

Opmerkingen

Gebruik deze methode om een gelokaliseerde vermelding naar het gebeurtenislogboek te schrijven. U geeft de gebeurteniseigenschappen op met resource-id's in plaats van tekenreekswaarden. De Logboeken gebruikt de resource-id's om de bijbehorende tekenreeksen uit het gelokaliseerde resourcebestand weer te geven voor de Source. U moet de bron registreren bij het bijbehorende resourcebestand voordat u gebeurtenissen schrijft met behulp van resource-id's.

Het invoerexemplaren instance specificeert het gebeurtenisbericht en de eigenschappen. Stel de InstanceId invoer voor het instance gedefinieerde bericht in het bronberichtbronbestand in. U kunt desgewenst de CategoryId en EntryType invoer instance instellen om de categorie en het gebeurtenistype van uw gebeurtenisvermelding te definiëren. U kunt ook een matrix met taalonafhankelijke tekenreeksen opgeven die moeten worden ingevoegd in de gelokaliseerde berichttekst. Ingesteld values op null als het gebeurtenisbericht geen tijdelijke aanduidingen voor vervangende tekenreeksen bevat.

U moet de Source eigenschap voor uw EventLog onderdeel instellen voordat u deze gebruikt WriteEvent. De opgegeven bron moet worden geconfigureerd voor het schrijven van gelokaliseerde vermeldingen in het logboek; de bron moet minimaal een berichtbronbestand hebben gedefinieerd.

U moet de gebeurtenisbron maken en configureren voordat u de eerste vermelding met de bron schrijft. Maak de nieuwe gebeurtenisbron tijdens de installatie van uw toepassing. Hierdoor kan het besturingssysteem de lijst met geregistreerde gebeurtenisbronnen en hun configuratie vernieuwen. Als het besturingssysteem de lijst met gebeurtenisbronnen niet heeft vernieuwd en u probeert een gebeurtenis te schrijven met de nieuwe bron, mislukt de schrijfbewerking. U kunt een nieuwe bron configureren met behulp van een EventLogInstallerof met behulp van de CreateEventSource methode. U moet beheerdersrechten hebben op de computer om een nieuwe gebeurtenisbron te maken.

De bron moet worden geconfigureerd voor het schrijven van gelokaliseerde vermeldingen of voor het schrijven van directe tekenreeksen. Gebruik de WriteEntry methode als uw toepassing tekenreekswaarden rechtstreeks naar het gebeurtenislogboek schrijft.

Als uw toepassing vermeldingen schrijft met zowel resource-id's als tekenreekswaarden, moet u twee afzonderlijke bronnen registreren. Configureer bijvoorbeeld één bron met resourcebestanden en gebruik die bron in de WriteEvent methode om vermeldingen te schrijven met behulp van resource-id's naar het gebeurtenislogboek. Maak vervolgens een andere bron zonder resourcebestanden en gebruik die bron in de WriteEntry methode om tekenreeksen rechtstreeks naar het gebeurtenislogboek te schrijven met behulp van die bron.

Note

Als u een vermelding naar een externe computer schrijft, is de waarde van de tekenreeks message mogelijk niet wat u verwacht als de externe computer niet wordt uitgevoerd .NET. De tekenreeks kan ook geen %n bevatten, waarbij n een geheel getal is (bijvoorbeeld %1), omdat de logboeken deze behandelen als een invoegtekenreeks.message Omdat een IPv6-adres (Internet Protocol) versie 6 (IPv6) deze tekenreeks kan bevatten, kunt u geen gebeurtenisbericht met een IPv6-adres registreren.

Zie ook

Van toepassing op

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

Hiermee schrijft u een gebeurtenislogboekvermelding met de opgegeven gebeurtenisgegevens, berichtvervangingstekenreeksen en bijbehorende binaire gegevens.

public:
 void WriteEvent(System::Diagnostics::EventInstance ^ instance, cli::array <System::Byte> ^ data, ... cli::array <System::Object ^> ^ values);
[System.Runtime.InteropServices.ComVisible(false)]
public void WriteEvent(System.Diagnostics.EventInstance instance, byte[] data, params object[] values);
[<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())

Parameters

instance
EventInstance

Een EventInstance exemplaar dat een gelokaliseerd gebeurtenislogboekitem vertegenwoordigt.

data
Byte[]

Een matrix van bytes die de binaire gegevens bevat die zijn gekoppeld aan de vermelding.

values
Object[]

Een matrix met tekenreeksen die moeten worden samengevoegd in de berichttekst van de vermelding van het gebeurtenislogboek.

Kenmerken

Uitzonderingen

De Source eigenschap van de EventLog eigenschap is niet ingesteld.

– of –

De methode heeft geprobeerd een nieuwe gebeurtenisbron te registreren, maar de computernaam is MachineName ongeldig.

– of –

De bron is al geregistreerd voor een ander gebeurtenislogboek.

– of –

instance.InstanceId is kleiner dan nul of groter dan UInt16.MaxValue.

– of –

values heeft meer dan 256 elementen.

– of –

Een van de values elementen is langer dan 32766 bytes.

– of –

De bronnaam resulteert in een registersleutelpad dat langer is dan 254 tekens.

instance is null.

De registersleutel voor het gebeurtenislogboek kan niet worden geopend.

Het besturingssysteem heeft een fout gerapporteerd bij het schrijven van de gebeurtenisvermelding in het gebeurtenislogboek. Er is geen Windows foutcode beschikbaar.

Voorbeelden

In het volgende voorbeeld worden twee controlevermeldingen naar het gebeurtenislogboek myNewLoggeschreven. In het voorbeeld wordt een nieuwe gebeurtenisbron en een nieuw gebeurtenislogboek gemaakt als deze niet bestaan op de lokale computer. De tekst van het gebeurtenisbericht wordt opgegeven met behulp van een resource-id in een resourcebestand.


// 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)

In het voorbeeld wordt het volgende berichttekstbestand gebruikt dat is ingebouwd in de resourcebibliotheek EventLogMsgs.dll. Een berichttekstbestand is de bron van waaruit het bronbestand van het bericht wordt gemaakt. Het berichttekstbestand definieert de resource-id's en tekst voor de categorie, gebeurtenisbericht en parameterinvoegreeksen.

; // 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
.

Opmerkingen

Gebruik deze methode om een gelokaliseerde vermelding te schrijven met aanvullende gebeurtenisspecifieke gegevens naar het gebeurtenislogboek. U geeft de gebeurteniseigenschappen op met resource-id's in plaats van tekenreekswaarden. De Logboeken gebruikt de resource-id's om de bijbehorende tekenreeksen uit het gelokaliseerde resourcebestand weer te geven voor de Source. U moet de bron registreren bij het bijbehorende resourcebestand voordat u gebeurtenissen schrijft met behulp van resource-id's.

Het invoerexemplaren instance specificeert het gebeurtenisbericht en de eigenschappen. Stel de InstanceId invoer voor het instance gedefinieerde bericht in het bronberichtbronbestand in. U kunt desgewenst de CategoryId en EntryType invoer instance instellen om de categorie en het gebeurtenistype van uw gebeurtenisvermelding te definiëren. U kunt ook een matrix met taalonafhankelijke tekenreeksen opgeven die moeten worden ingevoegd in de gelokaliseerde berichttekst. Ingesteld values op null als het gebeurtenisbericht geen tijdelijke aanduidingen voor vervangende tekenreeksen bevat.

Geef binaire gegevens op met een gebeurtenis wanneer het nodig is om aanvullende details voor de gebeurtenis op te geven. Gebruik bijvoorbeeld de data parameter om informatie over een specifieke fout op te nemen. De Logboeken interpreteert de bijbehorende gebeurtenisgegevens niet; de gegevens worden weergegeven in een gecombineerde hexadecimale en tekstindeling. Gebeurtenisspecifieke gegevens spaarzaam gebruiken; neem deze alleen op als u zeker weet dat het nuttig is. U kunt ook gebeurtenisspecifieke gegevens gebruiken om informatie op te slaan die de toepassing onafhankelijk van de Logboeken kan verwerken. U kunt bijvoorbeeld specifiek een viewer schrijven voor uw gebeurtenissen of een programma schrijven waarmee het gebeurtenislogboek wordt gescand en rapporten worden gemaakt die informatie bevatten van de gebeurtenisspecifieke gegevens.

U moet de Source eigenschap voor uw EventLog onderdeel instellen voordat u het onderdeel gaat gebruiken WriteEvent. De opgegeven bron moet worden geconfigureerd voor het schrijven van gelokaliseerde vermeldingen in het logboek; de bron moet minimaal een berichtbronbestand hebben gedefinieerd.

U moet de gebeurtenisbron maken en configureren voordat u de eerste vermelding met de bron schrijft. Maak de nieuwe gebeurtenisbron tijdens de installatie van uw toepassing. Hierdoor kan het besturingssysteem de lijst met geregistreerde gebeurtenisbronnen en hun configuratie vernieuwen. Als het besturingssysteem de lijst met gebeurtenisbronnen niet heeft vernieuwd en u probeert een gebeurtenis te schrijven met de nieuwe bron, mislukt de schrijfbewerking. U kunt een nieuwe bron configureren met behulp van een EventLogInstallerof met behulp van de CreateEventSource methode. U moet beheerdersrechten hebben op de computer om een nieuwe gebeurtenisbron te maken.

Note

Als u geen exemplaar MachineName opgeeft voordat EventLog u aanroept WriteEvent, wordt ervan uitgegaan dat de lokale computer (".") wordt gebruikt.

De bron moet worden geconfigureerd voor het schrijven van gelokaliseerde vermeldingen of voor het schrijven van directe tekenreeksen. Gebruik de WriteEntry methode als uw toepassing tekenreekswaarden rechtstreeks naar het gebeurtenislogboek schrijft.

Als uw toepassing vermeldingen schrijft met zowel resource-id's als tekenreekswaarden, moet u twee afzonderlijke bronnen registreren. Configureer bijvoorbeeld één bron met resourcebestanden en gebruik die bron in de WriteEvent methode om vermeldingen te schrijven met behulp van resource-id's naar het gebeurtenislogboek. Maak vervolgens een andere bron zonder resourcebestanden en gebruik die bron in de WriteEntry methode om tekenreeksen rechtstreeks naar het gebeurtenislogboek te schrijven met behulp van die bron.

Note

Als u een vermelding naar een externe computer schrijft, is de waarde van de tekenreeks message mogelijk niet wat u verwacht als de externe computer het .NET Framework niet uitvoert. De tekenreeks kan ook geen %n bevatten, waarbij n een geheel getal is (bijvoorbeeld %1), omdat de logboeken deze behandelen als een invoegtekenreeks.message Omdat een IPv6-adres (Internet Protocol) versie 6 (IPv6) deze tekenreeks kan bevatten, kunt u geen gebeurtenisbericht met een IPv6-adres registreren.

Zie ook

Van toepassing op

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

Hiermee schrijft u een gebeurtenislogboekvermelding met de opgegeven gebeurtenisgegevens, berichtvervangingstekenreeksen en bijbehorende binaire gegevens, en gebruikt u de opgegeven geregistreerde gebeurtenisbron.

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())

Parameters

source
String

De naam van de gebeurtenisbron die is geregistreerd voor de toepassing op de opgegeven computer.

instance
EventInstance

Een EventInstance exemplaar dat een gelokaliseerd gebeurtenislogboekitem vertegenwoordigt.

data
Byte[]

Een matrix van bytes die de binaire gegevens bevat die zijn gekoppeld aan de vermelding.

values
Object[]

Een matrix met tekenreeksen die moeten worden samengevoegd in de berichttekst van de vermelding van het gebeurtenislogboek.

Uitzonderingen

De source waarde is een lege tekenreeks ("").

– of –

De source waarde is null.

– of –

instance.InstanceId is kleiner dan nul of groter dan UInt16.MaxValue.

– of –

values heeft meer dan 256 elementen.

– of –

Een van de values elementen is langer dan 32766 bytes.

– of –

De bronnaam resulteert in een registersleutelpad dat langer is dan 254 tekens.

instance is null.

De registersleutel voor het gebeurtenislogboek kan niet worden geopend.

Het besturingssysteem heeft een fout gerapporteerd bij het schrijven van de gebeurtenisvermelding in het gebeurtenislogboek. Er is geen Windows foutcode beschikbaar.

Voorbeelden

In het volgende voorbeeld worden een informatieve gebeurtenisvermelding en een waarschuwingsvermelding naar een bestaand gebeurtenislogboek geschreven. De tekst van het gebeurtenisbericht wordt opgegeven met behulp van een resource-id in een resourcebestand. In het voorbeeld wordt ervan uitgegaan dat het bijbehorende resourcebestand is geregistreerd voor de bron.


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

In het voorbeeld wordt het volgende berichttekstbestand gebruikt dat is ingebouwd in de resourcebibliotheek EventLogMsgs.dll. Een berichttekstbestand is de bron van waaruit het bronbestand van het bericht wordt gemaakt. Het berichttekstbestand definieert de resource-id's en tekst voor de categorie, gebeurtenisbericht en parameterinvoegreeksen.

; // 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
.

Opmerkingen

Gebruik deze methode om een gelokaliseerde vermelding te schrijven met aanvullende gebeurtenisspecifieke gegevens naar het gebeurtenislogboek, met behulp van een bron die al is geregistreerd als een gebeurtenisbron voor het juiste logboek. U geeft de gebeurteniseigenschappen op met resource-id's in plaats van tekenreekswaarden. De Logboeken gebruikt de resource-id's om de bijbehorende tekenreeksen uit het gelokaliseerde resourcebestand voor de bron weer te geven. U moet de bron registreren bij het bijbehorende resourcebestand voordat u gebeurtenissen schrijft met behulp van resource-id's.

Het invoerexemplaren instance specificeert het gebeurtenisbericht en de eigenschappen. Stel de InstanceId invoer voor het instance gedefinieerde bericht in het bronberichtbronbestand in. U kunt desgewenst de CategoryId en EntryType invoer instance instellen om de categorie en het gebeurtenistype van uw gebeurtenisvermelding te definiëren. U kunt ook een matrix met taalonafhankelijke tekenreeksen opgeven die moeten worden ingevoegd in de gelokaliseerde berichttekst. Ingesteld values op null als het gebeurtenisbericht geen tijdelijke aanduidingen voor vervangende tekenreeksen bevat.

Geef binaire gegevens op met een gebeurtenis wanneer het nodig is om aanvullende details voor de gebeurtenis op te geven. Gebruik bijvoorbeeld de data parameter om informatie over een specifieke fout op te nemen. De Logboeken interpreteert de bijbehorende gebeurtenisgegevens niet; de gegevens worden weergegeven in een gecombineerde hexadecimale en tekstindeling. Gebeurtenisspecifieke gegevens spaarzaam gebruiken; neem deze alleen op als u zeker weet dat het nuttig is. U kunt ook gebeurtenisspecifieke gegevens gebruiken om informatie op te slaan die de toepassing onafhankelijk van de Logboeken kan verwerken. U kunt bijvoorbeeld specifiek een viewer schrijven voor uw gebeurtenissen of een programma schrijven waarmee het gebeurtenislogboek wordt gescand en rapporten worden gemaakt die informatie bevatten van de gebeurtenisspecifieke gegevens.

De opgegeven bron moet worden geregistreerd voor een gebeurtenislogboek voordat u deze gebruikt WriteEvent. De opgegeven bron moet worden geconfigureerd voor het schrijven van gelokaliseerde vermeldingen in het logboek; de bron moet minimaal een berichtbronbestand hebben gedefinieerd.

U moet de gebeurtenisbron maken en configureren voordat u de eerste vermelding met de bron schrijft. Maak de nieuwe gebeurtenisbron tijdens de installatie van uw toepassing. Hierdoor kan het besturingssysteem de lijst met geregistreerde gebeurtenisbronnen en hun configuratie vernieuwen. Als het besturingssysteem de lijst met gebeurtenisbronnen niet heeft vernieuwd en u probeert een gebeurtenis te schrijven met de nieuwe bron, mislukt de schrijfbewerking. U kunt een nieuwe bron configureren met behulp van een EventLogInstallerof met behulp van de CreateEventSource methode. U moet beheerdersrechten hebben op de computer om een nieuwe gebeurtenisbron te maken.

De bron moet worden geconfigureerd voor het schrijven van gelokaliseerde vermeldingen of voor het schrijven van directe tekenreeksen. Gebruik de WriteEntry methode als uw toepassing tekenreekswaarden rechtstreeks naar het gebeurtenislogboek schrijft.

Als uw toepassing vermeldingen schrijft met zowel resource-id's als tekenreekswaarden, moet u twee afzonderlijke bronnen registreren. Configureer bijvoorbeeld één bron met resourcebestanden en gebruik die bron in de WriteEvent methode om vermeldingen te schrijven met behulp van resource-id's naar het gebeurtenislogboek. Maak vervolgens een andere bron zonder resourcebestanden en gebruik die bron in de WriteEntry methode om tekenreeksen rechtstreeks naar het gebeurtenislogboek te schrijven met behulp van die bron.

Zie ook

Van toepassing op