Partager via


EventLog.WriteEvent Méthode

Définition

Écrit une entrée d’événement localisée dans le journal des événements.

Surcharges

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

Écrit une entrée de journal des événements avec les données d’événement et les chaînes de remplacement de message données, à l’aide de la source d’événement inscrite spécifiée.

WriteEvent(EventInstance, Object[])

Écrit une entrée localisée dans le journal des événements.

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

Écrit une entrée de journal des événements avec les données d’événement, les chaînes de remplacement de message et les données binaires associées.

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

Écrit une entrée de journal des événements avec les données d’événement, les chaînes de remplacement de message et les données binaires associées, et à l’aide de la source d’événement inscrite spécifiée.

WriteEvent(String, EventInstance, Object[])

Source:
EventLog.cs
Source:
EventLog.cs
Source:
EventLog.cs
Source:
EventLog.cs
Source:
EventLog.cs
Source:
EventLog.cs
Source:
EventLog.cs
Source:
EventLog.cs
Source:
EventLog.cs

Écrit une entrée de journal des événements avec les données d’événement et les chaînes de remplacement de message données, à l’aide de la source d’événement inscrite spécifiée.

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

Paramètres

source
String

Nom de la source d’événement inscrite pour l’application sur l’ordinateur spécifié.

instance
EventInstance

Instance EventInstance qui représente une entrée de journal des événements localisée.

values
Object[]

Tableau de chaînes à fusionner dans le texte du message de l’entrée du journal des événements.

Exceptions

La source valeur est une chaîne vide («  »).

- ou -

La source valeur est null.

- ou -

instance.InstanceId est inférieur à zéro ou supérieur à UInt16.MaxValue.

- ou -

values a plus de 256 éléments.

- ou -

L’un des values éléments est supérieur à 32766 octets.

- ou -

Le nom de la source génère un chemin de clé de Registre de plus de 254 caractères.

instance a la valeur null.

Impossible d’ouvrir la clé de Registre pour le journal des événements.

Le système d’exploitation a signalé une erreur lors de l’écriture de l’entrée d’événement dans le journal des événements. Un code d’erreur Windows n’est pas disponible.

Exemples

L’exemple suivant écrit une entrée d’événement informationnelle et une entrée d’événement d’avertissement dans un journal des événements existant. Le texte du message d’événement est spécifié à l’aide d’un identificateur de ressource dans un fichier de ressources. L’exemple suppose que le fichier de ressources correspondant a été inscrit pour la source.


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

L’exemple utilise le fichier texte de message suivant, intégré à la bibliothèque de ressources EventLogMsgs.dll. Un fichier texte de message est la source à partir de laquelle le fichier de ressource de message est créé. Le fichier texte du message définit les identificateurs de ressource et le texte de la catégorie, du message d’événement et des chaînes d’insertion de paramètre.

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

Remarques

Utilisez cette méthode pour écrire une entrée localisée dans le journal des événements, à l’aide d’une source déjà inscrite en tant que source d’événement pour le journal approprié. Vous spécifiez les propriétés d’événement avec des identificateurs de ressource plutôt que des valeurs de chaîne. L’Observateur d’événements utilise les identificateurs de ressource pour afficher les chaînes correspondantes à partir du fichier de ressources localisé pour la source. Vous devez inscrire la source auprès du fichier de ressources correspondant avant d’écrire des événements à l’aide d’identificateurs de ressource.

L’instance d’entrée instance spécifie le message d’événement et les propriétés. Définissez l’entrée InstanceIdinstance du message défini dans le fichier de ressource de message source. Vous pouvez éventuellement définir l’entrée CategoryId et EntryType l’entrée instance pour définir la catégorie et le type d’événement de votre entrée d’événement. Vous pouvez également spécifier un tableau de chaînes indépendantes de la langue à insérer dans le texte du message localisé. null Défini values sur si le message d’événement ne contient pas d’espaces réservés de mise en forme pour les chaînes de remplacement.

La source spécifiée doit être inscrite pour un journal des événements avant d’utiliser WriteEvent. La source spécifiée doit être configurée pour écrire des entrées localisées dans le journal ; la source doit au minimum avoir un fichier de ressources de message défini.

Vous devez créer et configurer la source d’événement avant d’écrire la première entrée avec la source. Créez la source d’événement pendant l’installation de votre application. Cela permet au système d’exploitation d’actualiser sa liste de sources d’événements inscrites et de leur configuration. Si le système d’exploitation n’a pas actualisé sa liste de sources d’événements et que vous tentez d’écrire un événement avec la nouvelle source, l’opération d’écriture échoue. Vous pouvez configurer une nouvelle source à l’aide d’une EventLogInstallerou de la CreateEventSource méthode. Vous devez disposer de droits d’administration sur l’ordinateur pour créer une source d’événement.

La source doit être configurée pour écrire des entrées localisées ou pour écrire des chaînes directes. Utilisez la WriteEntry méthode si votre application écrit des valeurs de chaîne directement dans le journal des événements.

Si votre application écrit des entrées à l’aide des identificateurs de ressource et des valeurs de chaîne, vous devez inscrire deux sources distinctes. Par exemple, configurez une source avec des fichiers de ressources, puis utilisez cette source dans la WriteEvent méthode pour écrire des entrées à l’aide d’identificateurs de ressource dans le journal des événements. Créez ensuite une autre source sans fichiers de ressources et utilisez cette source dans la WriteEntry méthode pour écrire des chaînes directement dans le journal des événements à l’aide de cette source.

Voir aussi

S’applique à

WriteEvent(EventInstance, Object[])

Source:
EventLog.cs
Source:
EventLog.cs
Source:
EventLog.cs
Source:
EventLog.cs
Source:
EventLog.cs
Source:
EventLog.cs
Source:
EventLog.cs
Source:
EventLog.cs
Source:
EventLog.cs

Écrit une entrée localisée dans le journal des événements.

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

Paramètres

instance
EventInstance

Instance EventInstance qui représente une entrée de journal des événements localisée.

values
Object[]

Tableau de chaînes à fusionner dans le texte du message de l’entrée du journal des événements.

Attributs

Exceptions

La Source propriété du fichier EventLog n’a pas été définie.

- ou -

La méthode a tenté d’inscrire une nouvelle source d’événement, mais le nom de l’ordinateur n’est MachineName pas valide.

- ou -

La source est déjà inscrite pour un autre journal des événements.

- ou -

instance.InstanceId est inférieur à zéro ou supérieur à UInt16.MaxValue.

- ou -

values a plus de 256 éléments.

- ou -

L’un des values éléments est supérieur à 32766 octets.

- ou -

Le nom de la source génère un chemin de clé de Registre de plus de 254 caractères.

instance a la valeur null.

Impossible d’ouvrir la clé de Registre pour le journal des événements.

Le système d’exploitation a signalé une erreur lors de l’écriture de l’entrée d’événement dans le journal des événements. Un code d’erreur Windows n’est pas disponible.

Exemples

L’exemple suivant écrit deux entrées d’audit dans le journal myNewLogdes événements. L’exemple crée une source d’événement et un nouveau journal des événements s’ils n’existent pas sur l’ordinateur local. Le texte du message d’événement est spécifié à l’aide d’un identificateur de ressource dans un fichier de ressources.


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

L’exemple utilise le fichier texte de message suivant, intégré à la bibliothèque de ressources EventLogMsgs.dll. Un fichier texte de message est la source à partir de laquelle le fichier de ressource de message est créé. Le fichier texte du message définit les identificateurs de ressource et le texte de la catégorie, du message d’événement et des chaînes d’insertion de paramètre.

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

Remarques

Utilisez cette méthode pour écrire une entrée localisée dans le journal des événements. Vous spécifiez les propriétés d’événement avec des identificateurs de ressource plutôt que des valeurs de chaîne. L’Observateur d’événements utilise les identificateurs de ressource pour afficher les chaînes correspondantes à partir du fichier de ressources localisé pour le Source. Vous devez inscrire la source auprès du fichier de ressources correspondant avant d’écrire des événements à l’aide d’identificateurs de ressource.

L’instance d’entrée instance spécifie le message d’événement et les propriétés. Définissez l’entrée InstanceIdinstance du message défini dans le fichier de ressource de message source. Vous pouvez éventuellement définir l’entrée CategoryId et EntryType l’entrée instance pour définir la catégorie et le type d’événement de votre entrée d’événement. Vous pouvez également spécifier un tableau de chaînes indépendantes de la langue à insérer dans le texte du message localisé. null Défini values sur si le message d’événement ne contient pas d’espaces réservés de mise en forme pour les chaînes de remplacement.

Vous devez définir la propriété sur votre EventLog composant avant d’utiliser SourceWriteEvent. La source spécifiée doit être configurée pour écrire des entrées localisées dans le journal ; la source doit au minimum avoir un fichier de ressources de message défini.

Vous devez créer et configurer la source d’événement avant d’écrire la première entrée avec la source. Créez la source d’événement pendant l’installation de votre application. Cela permet au système d’exploitation d’actualiser sa liste de sources d’événements inscrites et de leur configuration. Si le système d’exploitation n’a pas actualisé sa liste de sources d’événements et que vous tentez d’écrire un événement avec la nouvelle source, l’opération d’écriture échoue. Vous pouvez configurer une nouvelle source à l’aide d’une EventLogInstallerou de la CreateEventSource méthode. Vous devez disposer de droits d’administration sur l’ordinateur pour créer une source d’événement.

La source doit être configurée pour écrire des entrées localisées ou pour écrire des chaînes directes. Utilisez la WriteEntry méthode si votre application écrit des valeurs de chaîne directement dans le journal des événements.

Si votre application écrit des entrées à l’aide des identificateurs de ressource et des valeurs de chaîne, vous devez inscrire deux sources distinctes. Par exemple, configurez une source avec des fichiers de ressources, puis utilisez cette source dans la WriteEvent méthode pour écrire des entrées à l’aide d’identificateurs de ressource dans le journal des événements. Créez ensuite une autre source sans fichiers de ressources et utilisez cette source dans la WriteEntry méthode pour écrire des chaînes directement dans le journal des événements à l’aide de cette source.

Note

Si vous écrivez une entrée sur un ordinateur distant, la valeur de la message chaîne peut ne pas être ce que vous attendez si l’ordinateur distant n’exécute pas .NET. En outre, la message chaîne ne peut pas contenir %n, où n est une valeur entière (par exemple, %1), car l’observateur d’événements le traite comme une chaîne d’insertion. Étant donné qu’une adresse IPv6 (Internet Protocol), version 6 (IPv6) peut contenir cette séquence de caractères, vous ne pouvez pas consigner un message d’événement qui contient une adresse IPv6.

Voir aussi

S’applique à

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

Source:
EventLog.cs
Source:
EventLog.cs
Source:
EventLog.cs
Source:
EventLog.cs
Source:
EventLog.cs
Source:
EventLog.cs
Source:
EventLog.cs
Source:
EventLog.cs
Source:
EventLog.cs

Écrit une entrée de journal des événements avec les données d’événement, les chaînes de remplacement de message et les données binaires associées.

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

Paramètres

instance
EventInstance

Instance EventInstance qui représente une entrée de journal des événements localisée.

data
Byte[]

Tableau d’octets qui contient les données binaires associées à l’entrée.

values
Object[]

Tableau de chaînes à fusionner dans le texte du message de l’entrée du journal des événements.

Attributs

Exceptions

La Source propriété du fichier EventLog n’a pas été définie.

- ou -

La méthode a tenté d’inscrire une nouvelle source d’événement, mais le nom de l’ordinateur n’est MachineName pas valide.

- ou -

La source est déjà inscrite pour un autre journal des événements.

- ou -

instance.InstanceId est inférieur à zéro ou supérieur à UInt16.MaxValue.

- ou -

values a plus de 256 éléments.

- ou -

L’un des values éléments est supérieur à 32766 octets.

- ou -

Le nom de la source génère un chemin de clé de Registre de plus de 254 caractères.

instance a la valeur null.

Impossible d’ouvrir la clé de Registre pour le journal des événements.

Le système d’exploitation a signalé une erreur lors de l’écriture de l’entrée d’événement dans le journal des événements. Un code d’erreur Windows n’est pas disponible.

Exemples

L’exemple suivant écrit deux entrées d’audit dans le journal myNewLogdes événements. L’exemple crée une source d’événement et un nouveau journal des événements s’ils n’existent pas sur l’ordinateur local. Le texte du message d’événement est spécifié à l’aide d’un identificateur de ressource dans un fichier de ressources.


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

L’exemple utilise le fichier texte de message suivant, intégré à la bibliothèque de ressources EventLogMsgs.dll. Un fichier texte de message est la source à partir de laquelle le fichier de ressource de message est créé. Le fichier texte du message définit les identificateurs de ressource et le texte de la catégorie, du message d’événement et des chaînes d’insertion de paramètre.

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

Remarques

Utilisez cette méthode pour écrire une entrée localisée avec des données supplémentaires spécifiques à l’événement dans le journal des événements. Vous spécifiez les propriétés d’événement avec des identificateurs de ressource plutôt que des valeurs de chaîne. L’Observateur d’événements utilise les identificateurs de ressource pour afficher les chaînes correspondantes à partir du fichier de ressources localisé pour le Source. Vous devez inscrire la source auprès du fichier de ressources correspondant avant d’écrire des événements à l’aide d’identificateurs de ressource.

L’instance d’entrée instance spécifie le message d’événement et les propriétés. Définissez l’entrée InstanceIdinstance du message défini dans le fichier de ressource de message source. Vous pouvez éventuellement définir l’entrée CategoryId et EntryType l’entrée instance pour définir la catégorie et le type d’événement de votre entrée d’événement. Vous pouvez également spécifier un tableau de chaînes indépendantes de la langue à insérer dans le texte du message localisé. null Défini values sur si le message d’événement ne contient pas d’espaces réservés de mise en forme pour les chaînes de remplacement.

Spécifiez des données binaires avec un événement lorsqu’il est nécessaire de fournir des détails supplémentaires pour l’événement. Par exemple, utilisez le data paramètre pour inclure des informations sur une erreur spécifique. L’Observateur d’événements n’interprète pas les données d’événement associées ; il affiche les données dans un format hexadécimal et texte combiné. Utilisez des données spécifiques aux événements de manière éparse ; incluez-le uniquement si vous êtes sûr qu’il sera utile. Vous pouvez également utiliser des données spécifiques à l’événement pour stocker les informations que l’application peut traiter indépendamment de l’Observateur d’événements. Par exemple, vous pouvez écrire une visionneuse spécifiquement pour vos événements, ou écrire un programme qui analyse le journal des événements et crée des rapports qui incluent des informations à partir des données spécifiques à l’événement.

Vous devez définir la Source propriété sur votre EventLog composant avant l’utilisation WriteEventdu composant. La source spécifiée doit être configurée pour écrire des entrées localisées dans le journal ; la source doit au minimum avoir un fichier de ressources de message défini.

Vous devez créer et configurer la source d’événement avant d’écrire la première entrée avec la source. Créez la source d’événement pendant l’installation de votre application. Cela permet au système d’exploitation d’actualiser sa liste de sources d’événements inscrites et de leur configuration. Si le système d’exploitation n’a pas actualisé sa liste de sources d’événements et que vous tentez d’écrire un événement avec la nouvelle source, l’opération d’écriture échoue. Vous pouvez configurer une nouvelle source à l’aide d’une EventLogInstallerou de la CreateEventSource méthode. Vous devez disposer de droits d’administration sur l’ordinateur pour créer une source d’événement.

Note

Si vous ne spécifiez pas d’instance MachineNameEventLog avant d’appeler WriteEvent, l’ordinateur local (« . ») est supposé.

La source doit être configurée pour écrire des entrées localisées ou pour écrire des chaînes directes. Utilisez la WriteEntry méthode si votre application écrit des valeurs de chaîne directement dans le journal des événements.

Si votre application écrit des entrées à l’aide des identificateurs de ressource et des valeurs de chaîne, vous devez inscrire deux sources distinctes. Par exemple, configurez une source avec des fichiers de ressources, puis utilisez cette source dans la WriteEvent méthode pour écrire des entrées à l’aide d’identificateurs de ressource dans le journal des événements. Créez ensuite une autre source sans fichiers de ressources et utilisez cette source dans la WriteEntry méthode pour écrire des chaînes directement dans le journal des événements à l’aide de cette source.

Note

Si vous écrivez une entrée sur un ordinateur distant, la valeur de la message chaîne peut ne pas être ce que vous attendez si l’ordinateur distant n’exécute pas le .NET Framework. En outre, la message chaîne ne peut pas contenir %n, où n est une valeur entière (par exemple, %1), car l’observateur d’événements le traite comme une chaîne d’insertion. Étant donné qu’une adresse IPv6 (Internet Protocol), version 6 (IPv6) peut contenir cette séquence de caractères, vous ne pouvez pas consigner un message d’événement qui contient une adresse IPv6.

Voir aussi

S’applique à

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

Source:
EventLog.cs
Source:
EventLog.cs
Source:
EventLog.cs
Source:
EventLog.cs
Source:
EventLog.cs
Source:
EventLog.cs
Source:
EventLog.cs
Source:
EventLog.cs
Source:
EventLog.cs

Écrit une entrée de journal des événements avec les données d’événement, les chaînes de remplacement de message et les données binaires associées, et à l’aide de la source d’événement inscrite spécifiée.

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

Paramètres

source
String

Nom de la source d’événement inscrite pour l’application sur l’ordinateur spécifié.

instance
EventInstance

Instance EventInstance qui représente une entrée de journal des événements localisée.

data
Byte[]

Tableau d’octets qui contient les données binaires associées à l’entrée.

values
Object[]

Tableau de chaînes à fusionner dans le texte du message de l’entrée du journal des événements.

Exceptions

La source valeur est une chaîne vide («  »).

- ou -

La source valeur est null.

- ou -

instance.InstanceId est inférieur à zéro ou supérieur à UInt16.MaxValue.

- ou -

values a plus de 256 éléments.

- ou -

L’un des values éléments est supérieur à 32766 octets.

- ou -

Le nom de la source génère un chemin de clé de Registre de plus de 254 caractères.

instance a la valeur null.

Impossible d’ouvrir la clé de Registre pour le journal des événements.

Le système d’exploitation a signalé une erreur lors de l’écriture de l’entrée d’événement dans le journal des événements. Un code d’erreur Windows n’est pas disponible.

Exemples

L’exemple suivant écrit une entrée d’événement informationnelle et une entrée d’événement d’avertissement dans un journal des événements existant. Le texte du message d’événement est spécifié à l’aide d’un identificateur de ressource dans un fichier de ressources. L’exemple suppose que le fichier de ressources correspondant a été inscrit pour la source.


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

L’exemple utilise le fichier texte de message suivant, intégré à la bibliothèque de ressources EventLogMsgs.dll. Un fichier texte de message est la source à partir de laquelle le fichier de ressource de message est créé. Le fichier texte du message définit les identificateurs de ressource et le texte de la catégorie, du message d’événement et des chaînes d’insertion de paramètre.

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

Remarques

Utilisez cette méthode pour écrire une entrée localisée avec des données supplémentaires spécifiques à l’événement dans le journal des événements, à l’aide d’une source déjà inscrite en tant que source d’événement pour le journal approprié. Vous spécifiez les propriétés d’événement avec des identificateurs de ressource plutôt que des valeurs de chaîne. L’Observateur d’événements utilise les identificateurs de ressource pour afficher les chaînes correspondantes à partir du fichier de ressources localisé pour la source. Vous devez inscrire la source auprès du fichier de ressources correspondant avant d’écrire des événements à l’aide d’identificateurs de ressource.

L’instance d’entrée instance spécifie le message d’événement et les propriétés. Définissez l’entrée InstanceIdinstance du message défini dans le fichier de ressource de message source. Vous pouvez éventuellement définir l’entrée CategoryId et EntryType l’entrée instance pour définir la catégorie et le type d’événement de votre entrée d’événement. Vous pouvez également spécifier un tableau de chaînes indépendantes de la langue à insérer dans le texte du message localisé. null Défini values sur si le message d’événement ne contient pas d’espaces réservés de mise en forme pour les chaînes de remplacement.

Spécifiez des données binaires avec un événement lorsqu’il est nécessaire de fournir des détails supplémentaires pour l’événement. Par exemple, utilisez le data paramètre pour inclure des informations sur une erreur spécifique. L’Observateur d’événements n’interprète pas les données d’événement associées ; il affiche les données dans un format hexadécimal et texte combiné. Utilisez des données spécifiques aux événements de manière éparse ; incluez-le uniquement si vous êtes sûr qu’il sera utile. Vous pouvez également utiliser des données spécifiques à l’événement pour stocker les informations que l’application peut traiter indépendamment de l’Observateur d’événements. Par exemple, vous pouvez écrire une visionneuse spécifiquement pour vos événements, ou écrire un programme qui analyse le journal des événements et crée des rapports qui incluent des informations à partir des données spécifiques à l’événement.

La source spécifiée doit être inscrite pour un journal des événements avant d’utiliser WriteEvent. La source spécifiée doit être configurée pour écrire des entrées localisées dans le journal ; la source doit au minimum avoir un fichier de ressources de message défini.

Vous devez créer et configurer la source d’événement avant d’écrire la première entrée avec la source. Créez la source d’événement pendant l’installation de votre application. Cela permet au système d’exploitation d’actualiser sa liste de sources d’événements inscrites et de leur configuration. Si le système d’exploitation n’a pas actualisé sa liste de sources d’événements et que vous tentez d’écrire un événement avec la nouvelle source, l’opération d’écriture échoue. Vous pouvez configurer une nouvelle source à l’aide d’une EventLogInstallerou de la CreateEventSource méthode. Vous devez disposer de droits d’administration sur l’ordinateur pour créer une source d’événement.

La source doit être configurée pour écrire des entrées localisées ou pour écrire des chaînes directes. Utilisez la WriteEntry méthode si votre application écrit des valeurs de chaîne directement dans le journal des événements.

Si votre application écrit des entrées à l’aide des identificateurs de ressource et des valeurs de chaîne, vous devez inscrire deux sources distinctes. Par exemple, configurez une source avec des fichiers de ressources, puis utilisez cette source dans la WriteEvent méthode pour écrire des entrées à l’aide d’identificateurs de ressource dans le journal des événements. Créez ensuite une autre source sans fichiers de ressources et utilisez cette source dans la WriteEntry méthode pour écrire des chaînes directement dans le journal des événements à l’aide de cette source.

Voir aussi

S’applique à