Exportar (0) Imprimir
Expandir todo
Este tema aún no ha recibido ninguna valoración - Valorar este tema

EventLog.WriteEvent (Método) (String, EventInstance, Object[])

Escribe una entrada de registro de eventos con las cadenas de reemplazo de mensaje y los datos de evento proporcionados, para lo que utiliza el origen de eventos registrado.

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

public static void WriteEvent (
	string source,
	EventInstance instance,
	params Object[] values
)
public static void WriteEvent (
	String source, 
	EventInstance instance, 
	Object[] values
)
public static function WriteEvent (
	source : String, 
	instance : EventInstance, 
	... values : Object[]
)
No aplicable.

Parámetros

source

Nombre del origen de eventos registrado para la aplicación en el equipo especificado.

instance

Instancia de EventInstance que representa una entrada adaptada del registro de eventos.

values

Matriz de cadenas que se van a combinar para formar el texto del mensaje de la entrada del registro de eventos.

Tipo de excepciónCondición

ArgumentException

El valor de source es una cadena vacía ("").

O bien

El valor de source es referencia null (Nothing en Visual Basic) (Nothing en Visual Basic).

O bien

instance.InstanceId es menor que cero o mayor que UInt16.MaxValue.

O bien

values tiene más de 256 elementos.

O bien

Uno de los elementos values tiene más de 32766 bytes.

O bien

El nombre de origen produce una ruta de clave del Registro con una longitud superior a 254 caracteres.

ArgumentNullException

instance es referencia null (Nothing en Visual Basic) ( Nothingen Visual Basic).

InvalidOperationException

No se ha podido abrir la clave del Registro para el registro de eventos.

Win32Exception

El sistema operativo ha notificado un error al escribir la entrada de evento en el Registro. No hay ningún código de error de Windows disponible.

Este método se emplea para escribir en el registro de eventos una entrada adaptada mediante un origen ya registrado como origen de eventos para el Registro. Las propiedades de evento se especifican mejor con identificadores de recursos que con valores de cadena. El Visor de eventos usa los identificadores de recursos para mostrar las cadenas correspondientes del archivo de recursos adaptado del origen. Antes de escribir eventos con identificadores de recursos, debe registrarse el origen con el archivo de recursos correspondiente.

La instancia de entrada de instance especifica el mensaje y las propiedades del evento. El InstanceId de la entrada instance debe establecerse para el mensaje definido en el archivo de recursos de mensajes. Como alternativa, pueden establecerse los CategoryId y EntryType de la entrada instance para definir la categoría y tipo de evento de la entrada de evento. También puede especificarse una matriz de cadenas válidas para cualquier idioma para insertar en el texto del mensaje adaptado. Cuando el mensaje de evento no contenga marcadores de formato para las cadenas de reemplazo, es necesario establecer values como referencia null (Nothing en Visual Basic) (Nothing en Visual Basic).

Antes de usar WriteEvent, deberá registrarse el origen especificado para un registro de eventos. El origen deberá estar configurado para escribir entradas adaptadas en el Registro y, como mínimo, deberá tener un archivo de recursos de mensajes definido.

El origen de eventos deberá crearse y configurarse antes de escribir la primera entrada con él. El nuevo origen de eventos deberá crearse durante la instalación de la aplicación. De esta manera, el sistema operativo dispondrá de tiempo para actualizar la lista de orígenes de eventos registrados y sus configuraciones. Si el sistema operativo aún no ha actualizado la lista de orígenes de eventos y se intenta escribir un evento con el nuevo origen, se producirá un error de la operación de escritura. Para configurar un nuevo origen, puede utilizarse EventLogInstaller o el método CreateEventSource. Es necesario contar con derechos administrativos en el equipo para crear un nuevo origen de eventos.

El origen deberá configurarse para escribir o bien entradas adaptadas o bien cadenas directas. Deberá utilizarse el método WriteEntry cuando la aplicación escriba valores de cadena directamente en el registro de eventos.

Cuando una aplicación escriba entradas usando tanto identificadores de recursos como valores de cadena, deberán registrarse dos orígenes diferentes. Por ejemplo, puede configurarse un origen con archivos de recursos y usarlo en el método WriteEvent para escribir entradas en el registro de eventos mediante identificadores de recursos. A continuación, puede crearse otro origen sin archivos de recursos y usarlo en el método WriteEntry para escribir cadenas directamente en el registro de eventos.

En el siguiente ejemplo se escribe en un registro de eventos ya existente una entrada de evento informativa y otra de advertencia. El texto del mensaje del evento se especifica mediante un identificador de recursos de un archivo de recursos. En el ejemplo se supone que el correspondiente archivo de recursos está registrado para el origen.


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);
}

En el ejemplo se usa el siguiente archivo de texto de mensaje, integrado en la biblioteca de recursos EventLogMsgs.dll. Un archivo de texto de mensaje es el origen a partir del que se crea un archivo de recursos de mensaje. En el archivo de texto de mensaje se definen los identificadores de recursos y el texto para las cadenas de categoría, mensaje de eventos e inserción de parámetros.

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

Windows 98, Windows 2000 Service Pack 4, Windows Millennium, Windows Server 2003, Windows XP Media Center, Windows XP Professional x64, Windows XP SP2, Windows XP Starter

Microsoft .NET Framework 3.0 es compatible con Windows Vista, Microsoft Windows XP SP2 y Windows Server 2003 SP1.

.NET Framework

Compatible con: 3.0, 2.0
¿Te ha resultado útil?
(Caracteres restantes: 1500)
Gracias por sus comentarios

Adiciones de comunidad

AGREGAR
Mostrar:
© 2014 Microsoft. Reservados todos los derechos.