Este artículo se tradujo automáticamente. Para ver el artículo en inglés, active la casilla Inglés. Además, puede mostrar el texto en inglés en una ventana emergente si mueve el puntero del mouse sobre el texto.
Traducción
Inglés

Constructor EventSourceCreationData (String, String)

 

Publicado: octubre de 2016

Inicializa una nueva instancia de la EventSourceCreationData clase con un nombre de origen y el registro de eventos del evento especificado.

Espacio de nombres:   System.Diagnostics
Ensamblado:  System (en System.dll)

public EventSourceCreationData(
	string source,
	string logName
)

Parámetros

source
Type: System.String

El nombre para registrar con el registro de eventos como origen de entradas.

logName
Type: System.String

El nombre del registro a la que se escriben las entradas del origen.

Para escribir entradas en un registro de eventos, primero debe crear un origen de eventos para el registro de eventos. Para registrar un nuevo origen, inicialice una EventSourceCreationData la instancia, configurar las propiedades de la instancia de la aplicación y llamar el EventLog.CreateEventSource(EventSourceCreationData) método. Una vez registrado el origen, puede escribir las entradas desde el origen mediante el WriteEvent o WriteEntry métodos.

Puede registrar el origen de eventos con los recursos localizados para las cadenas de categoría y el mensaje de evento. La aplicación puede escribir entradas del registro de eventos con identificadores de recursos, en lugar de especificar la cadena real. El Visor de eventos utiliza el identificador del recurso para buscar y mostrar la cadena correspondiente del archivo de recursos localizados según la configuración de idioma actual. Puede registrarse un archivo independiente para las categorías de eventos, mensajes y las cadenas de inserción de parámetro, o puede registrar el mismo archivo de recursos para los tres tipos de cadenas. Utilice la CategoryCount, CategoryResourceFile, MessageResourceFile, y ParameterResourceFile Propiedades para configurar el origen para escribir entradas adaptadas en el registro de eventos. Si la aplicación escribe valores de cadena directamente en el registro de eventos, no es necesario establecer estas propiedades.

El origen debe configurarse para escribir entradas adaptadas o cadenas directas. Si la aplicación escribe las entradas mediante identificadores de recursos y valores de cadena, debe registrarse dos orígenes diferentes. Por ejemplo, configurar un origen con archivos de recursos y, a continuación, usar ese origen en el WriteEvent método para escribir entradas mediante identificadores de recursos en el registro de eventos. A continuación, cree un origen diferente sin archivos de recursos y usarlo en el WriteEntry método para escribir cadenas directamente en el registro de eventos.

La siguiente tabla muestra los valores de propiedad iniciales para una EventSourceCreationData.

Propiedad

Valor inicial

Source

Parámetro source.

LogName

Parámetro logName.

MachineName

El equipo local (".").

CategoryCount

Cero

CategoryResourceFile

null (Nothing en Visual Basic).

MessageResourceFile

null (Nothing en Visual Basic).

ParameterResourceFile

null (Nothing en Visual Basic).

En el ejemplo de código siguiente se determina si el origen de eventos denominado SampleApplicationSource está registrado en el equipo local. Si el origen del evento no existe, el ejemplo establece el archivo de recursos de mensaje para el origen y crea el nuevo origen de eventos. Por último, el ejemplo de código establece el nombre para mostrar traducido para el registro de eventos utilizando el valor de identificador de recursos en DisplayNameMsgId y la ruta de acceso del archivo de recursos en 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);
    }
}

El ejemplo de código utiliza el siguiente archivo de texto de mensaje, integrado en la biblioteca de recursos EventLogMsgs.dll. Un archivo de texto de mensaje es el origen desde el que se creó el archivo de recursos de mensaje. El archivo de texto de mensaje define los identificadores de recursos y el texto de categoría, mensaje de evento y las cadenas de inserción de parámetro.

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

SecurityPermission

for calling any member of T:System.Diagnostics.EventSourceCreationData with full trust. Associated enumeration: F:System.Security.Permissions.PermissionState.Unrestricted

.NET Framework
Disponible desde 2.0
Volver al principio
Mostrar: