EventSourceCreationData(String, String) Costruttore

Definizione

Inizializza una nuova istanza della EventSourceCreationData classe con un'origine evento e un nome del log eventi specificati.

public:
 EventSourceCreationData(System::String ^ source, System::String ^ logName);
public EventSourceCreationData(string? source, 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)

Parametri

source
String

Nome da registrare nel registro eventi come origine delle voci.

logName
String

Nome del log in cui vengono scritte le voci dell'origine.

Esempio

Nell'esempio di codice seguente viene determinato se l'origine evento denominata SampleApplicationSource è registrata nel computer locale. Se l'origine evento non esiste, nell'esempio viene impostato il file di risorse del messaggio per l'origine e viene creata la nuova origine evento. Infine, l'esempio di codice imposta il nome visualizzato localizzato per il registro eventi, usando il valore dell'identificatore di risorsa in DisplayNameMsgId e il percorso del file di risorse in 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

Nell'esempio di codice viene usato il file di testo del messaggio seguente, integrato nella libreria di risorse EventLogMsgs.dll. Un file di testo del messaggio è l'origine da cui viene creato il file di risorse del messaggio. Il file di testo del messaggio definisce gli identificatori di risorsa e il testo per la categoria, il messaggio di evento e le stringhe di inserimento dei parametri.

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

Commenti

Per scrivere voci in un registro eventi, è prima necessario creare un'origine evento per il registro eventi. Per registrare una nuova origine, inizializzare un'istanza EventSourceCreationData , configurare le proprietà dell'istanza per l'applicazione e chiamare il EventLog.CreateEventSource(EventSourceCreationData) metodo . Dopo aver registrato l'origine, è possibile scrivere voci dall'origine usando i WriteEvent metodi o WriteEntry .

È possibile registrare l'origine evento con risorse localizzate per la categoria di eventi e le stringhe di messaggio. L'applicazione può scrivere voci del registro eventi usando identificatori di risorsa, invece di specificare la stringa effettiva. Il Visualizzatore eventi usa l'identificatore della risorsa per trovare e visualizzare la stringa corrispondente dal file di risorse localizzato in base alle impostazioni della lingua correnti. È possibile registrare un file separato per categorie di eventi, messaggi e stringhe di inserimento di parametri oppure è possibile registrare lo stesso file di risorse per tutti e tre i tipi di stringhe. Usare le CategoryCountproprietà , CategoryResourceFileMessageResourceFile, e ParameterResourceFile per configurare l'origine per scrivere voci localizzate nel registro eventi. Se l'applicazione scrive i valori stringa direttamente nel registro eventi, non è necessario impostare queste proprietà.

L'origine deve essere configurata per la scrittura di voci localizzate o per la scrittura di stringhe dirette. Se l'applicazione scrive voci usando sia identificatori di risorsa che valori stringa, è necessario registrare due origini separate. Ad esempio, configurare un'origine con i file di risorse e quindi usare tale origine nel WriteEvent metodo per scrivere voci usando gli identificatori di risorsa nel registro eventi. Creare quindi un'origine diversa senza file di risorse e usare tale origine nel WriteEntry metodo per scrivere stringhe direttamente nel registro eventi.

Nella tabella seguente vengono illustrati i valori iniziali delle proprietà per un oggetto EventSourceCreationData.

Proprietà Valore iniziale
Source Parametro source .
LogName Parametro logName .
MachineName Computer locale (".").
CategoryCount Zero
CategoryResourceFile null (Nothing in Visual Basic).
MessageResourceFile null (Nothing in Visual Basic).
ParameterResourceFile null (Nothing in Visual Basic).

Si applica a

Vedi anche