EventSourceCreationData(String, String) Constructeur

Définition

Initialise une nouvelle instance de la EventSourceCreationData classe avec une source d’événement et un nom de journal d’événements spécifiés.

public:
 EventSourceCreationData(System::String ^ source, System::String ^ logName);
public EventSourceCreationData(string source, string logName);
new System.Diagnostics.EventSourceCreationData : string * string -> System.Diagnostics.EventSourceCreationData
Public Sub New (source As String, logName As String)

Paramètres

source
String

Nom à inscrire auprès du journal des événements en tant que source d’entrées.

logName
String

Nom du journal dans lequel les entrées de la source sont écrites.

Exemples

L’exemple de code suivant détermine si la source d’événement nommée SampleApplicationSource est inscrite sur l’ordinateur local. Si la source d’événement n’existe pas, l’exemple définit le fichier de ressource de message pour la source et crée la source d’événement. Enfin, l’exemple de code définit le nom d’affichage localisé pour le journal des événements, à l’aide de la valeur d’identificateur de ressource dans DisplayNameMsgId et du chemin d’accès du fichier de ressources dans messageFile.

static void CreateEventSourceSample1(string messageFile)
{
    string myLogName;
    string sourceName = "SampleApplicationSource";

    // Create the event source if it does not exist.
    if(!EventLog.SourceExists(sourceName))
    {
        // Create a new event source for the custom event log
        // named "myNewLog."

        myLogName = "myNewLog";
        EventSourceCreationData mySourceData = new EventSourceCreationData(sourceName, myLogName);

        // Set the message resource file that the event source references.
        // All event resource identifiers correspond to text in this file.
        if (!System.IO.File.Exists(messageFile))
        {
            Console.WriteLine("Input message resource file does not exist - {0}",
                messageFile);
            messageFile = "";
        }
        else
        {
            // Set the specified file as the resource
            // file for message text, category text, and
            // message parameter strings.

            mySourceData.MessageResourceFile = messageFile;
            mySourceData.CategoryResourceFile = messageFile;
            mySourceData.CategoryCount = CategoryCount;
            mySourceData.ParameterResourceFile = messageFile;

            Console.WriteLine("Event source message resource file set to {0}",
                messageFile);
        }

        Console.WriteLine("Registering new source for event log.");
        EventLog.CreateEventSource(mySourceData);
    }
    else
    {
        // Get the event log corresponding to the existing source.
        myLogName = EventLog.LogNameFromSourceName(sourceName,".");
    }

    // Register the localized name of the event log.
    // For example, the actual name of the event log is "myNewLog," but
    // the event log name displayed in the Event Viewer might be
    // "Sample Application Log" or some other application-specific
    // text.
    EventLog myEventLog = new EventLog(myLogName, ".", sourceName);

    if (messageFile.Length > 0)
    {
        myEventLog.RegisterDisplayName(messageFile, DisplayNameMsgId);
    }
}
Public Shared Sub CreateEventSourceSample1(ByVal messageFile As String)

    Dim myLogName As String
    Dim sourceName As String = "SampleApplicationSource"

    ' Create the event source if it does not exist.
    If Not EventLog.SourceExists(sourceName)
    
        ' Create a new event source for the custom event log
        ' named "myNewLog."  

        myLogName = "myNewLog"
        Dim mySourceData As EventSourceCreationData = New EventSourceCreationData(sourceName, myLogName)

        ' Set the message resource file that the event source references.
        ' All event resource identifiers correspond to text in this file.
        If Not System.IO.File.Exists(messageFile)

            Console.WriteLine("Input message resource file does not exist - {0}", _
                messageFile)
            messageFile = ""
        Else 
            ' Set the specified file as the resource
            ' file for message text, category text and 
            ' message parameters strings.

            mySourceData.MessageResourceFile = messageFile
            mySourceData.CategoryResourceFile = messageFile
            mySourceData.CategoryCount = CategoryCount
            mySourceData.ParameterResourceFile = messageFile

            Console.WriteLine("Event source message resource file set to {0}", _
                messageFile)
        End If

        Console.WriteLine("Registering new source for event log.")
        EventLog.CreateEventSource(mySourceData)
    Else
        ' Get the event log corresponding to the existing source.
        myLogName = EventLog.LogNameFromSourceName(sourceName,".")
    End If

    ' Register the localized name of the event log.
    ' For example, the actual name of the event log is "myNewLog," but
    ' the event log name displayed in the Event Viewer might be
    ' "Sample Application Log" or some other application-specific
    ' text.
    Dim myEventLog As EventLog = New EventLog(myLogName, ".", sourceName)
    
    If messageFile.Length > 0
        myEventLog.RegisterDisplayName(messageFile, DisplayNameMsgId)
    End If
End Sub

L’exemple de code 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

Pour écrire des entrées dans un journal des événements, vous devez d’abord créer une source d’événement pour le journal des événements. Pour inscrire une nouvelle source, initialisez une instance, configurez les propriétés de EventSourceCreationData l’instance pour votre application et appelez la EventLog.CreateEventSource(EventSourceCreationData) méthode. Une fois la source inscrite, vous pouvez écrire des entrées à partir de la source à l’aide des méthodes ou WriteEntry des WriteEvent méthodes.

Vous pouvez inscrire la source d’événement avec des ressources localisées pour votre catégorie d’événements et les chaînes de message. Votre application peut écrire des entrées de journal des événements à l’aide d’identificateurs de ressources, plutôt que de spécifier la chaîne réelle. L’Observateur d’événements utilise l’identificateur de ressource pour rechercher et afficher la chaîne correspondante à partir du fichier de ressources localisé en fonction des paramètres de langue actuels. Vous pouvez inscrire un fichier distinct pour les catégories d’événements, les messages et les chaînes d’insertion de paramètres, ou vous pouvez inscrire le même fichier de ressources pour les trois types de chaînes. Utilisez les propriétés , CategoryCountet CategoryResourceFileMessageResourceFile les ParameterResourceFilepropriétés pour configurer la source pour écrire des entrées localisées dans le journal des événements. Si votre application écrit des valeurs de chaîne directement dans le journal des événements, vous n’avez pas besoin de définir ces propriétés.

La source doit être configurée pour écrire des entrées localisées ou pour écrire des chaînes directes. 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.

Le tableau suivant présente les valeurs de propriété initiales d’un EventSourceCreationData.

Propriété Valeur initiale
Source Le paramètre source.
LogName Le paramètre logName.
MachineName L’ordinateur local (« . »).
CategoryCount Zéro
CategoryResourceFile null (Nothing dans Visual Basic).
MessageResourceFile null (Nothing dans Visual Basic).
ParameterResourceFile null (Nothing dans Visual Basic).

S’applique à

Voir aussi