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

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

 

Publicado: octubre de 2016

Escribe una entrada de registro de eventos con los datos de evento dados, con cadenas de reemplazo de mensajes y con datos binarios asociados.

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

[<ComVisibleAttribute(false)>]
member WriteEvent : 
        instance:EventInstance *
        data:byte[] *
        [<ParamArrayAttribute>] values:Object[] -> unit

Parámetros

instance
Type: System.Diagnostics.EventInstance

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

data
Type: System.Byte[]

Matriz de bytes que incluye los datos binarios asociados a la entrada.

values
Type: System.Object[]

Matriz de cadenas que se van a fusionar mediante combinación para formar el texto del mensaje de la entrada del registro de eventos.

Exception Condition
ArgumentException

El Source propiedad de la EventLog no se ha establecido.

O bien

El método ha intentado registrar un origen de eventos, pero el nombre del equipo en MachineName no es válido.

o bien

El origen ya está registrado para otro registro de eventos.

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 values elementos tiene más de 32.766 bytes.

o bien

El nombre de origen produce una ruta de clave del registro más de 254 caracteres.

ArgumentNullException

El valor de instance es null.

InvalidOperationException

No se pudo abrir la clave del registro para el registro de eventos.

Win32Exception

El sistema operativo notificó un error al escribir la entrada de evento en el registro de eventos. Un código de error de Windows no está disponible.

Utilice este método para escribir una entrada adaptada con datos específicos de evento adicionales en el registro de eventos. Especifique las propiedades de eventos con identificadores de recursos en lugar de valores de cadena. El Visor de eventos usa los identificadores de recursos para mostrar las cadenas correspondientes del archivo de recursos localizado para el Source. Debe registrar el origen con el archivo de recursos correspondiente antes de escribir eventos con identificadores de recursos.

La entrada instance instancia especifica las propiedades y el mensaje de evento. Establecer el InstanceId de la instance de entrada para el mensaje definido en el archivo de recursos de mensaje de origen. Opcionalmente, puede establecer el CategoryId y EntryType de la instance entrada para definir el tipo de evento y categoría de la entrada del evento. También puede especificar una matriz de cadenas independientes del idioma para insertar en el texto del mensaje localizado. Establecer values a null Si el mensaje de evento no contenga marcadores de formato para las cadenas de reemplazo.

Especificar datos binarios con un evento cuando es necesario proporcionar detalles adicionales para el evento. Por ejemplo, use la data parámetro incluir información sobre un error específico. El Visor de eventos no interpreta los datos de evento asociado; Muestra los datos en un formato hexadecimal y de texto combinado. Utilice los datos específicos del evento con moderación; incluir solo si está seguro de que serán útiles. También puede utilizar los datos específicos del evento para almacenar información de que la aplicación puede procesar independientemente el Visor de eventos. Por ejemplo, podría escribir un visor específicamente para los eventos o escribir un programa que examina el registro de eventos y crea informes que incluyen información de los datos específicos del evento.

Debe establecer el Source propiedad en su EventLog componente antes de componente antes de usar WriteEvent. El origen especificado debe configurarse para escribir entradas adaptadas en el registro; el origen debe tener como mínimo un archivo de recursos de mensaje definido.

Debe crear y configurar el origen del evento antes de escribir la primera entrada con el origen. Crear el nuevo origen de eventos durante la instalación de la aplicación. Esto da tiempo para el sistema operativo actualizar la lista de orígenes de eventos registrados y su configuración. Si el sistema operativo no ha actualizado su lista de orígenes de eventos y se intenta escribir un evento con el nuevo origen, que se producirá un error en la operación de escritura. Puede configurar un nuevo origen mediante un EventLogInstaller, o mediante el CreateEventSource método. Debe tener derechos administrativos en el equipo para crear un nuevo origen de eventos.

System_CAPS_noteNota

Si no especifica un MachineName para su EventLog instancia antes de llamar a WriteEvent, el equipo local (".") se supone.

El origen debe configurarse para escribir entradas adaptadas o cadenas directas. Utilice la WriteEntry método si la aplicación escribe valores de cadena directamente en el registro de eventos.

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 utilizando ese origen.

System_CAPS_noteNota

Si se escribe una entrada en un equipo remoto, el valor de la message puede no ser el esperado si el equipo remoto no está ejecutando .NET Framework. Además, el message cadena no puede contener %n, donde n es un valor entero (por ejemplo, %1), porque el Visor de eventos lo trata como una cadena de inserción. Dado que un protocolo de Internet versión 6 (IPv6) puede contener esta secuencia de caracteres, no puede registrar un mensaje de evento que contiene una dirección IPv6.

En el ejemplo siguiente se escribe dos entradas al registro de eventos de auditoría myNewLog. En el ejemplo se crea un nuevo origen de eventos y un registro de eventos si no existen en el equipo local. El texto del mensaje de evento se especifica mediante un identificador de recursos en un archivo de recursos.

No hay ningún ejemplo de código disponible o este idioma no es compatible.

El ejemplo 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
.

EventLogPermission

for writing the event log information on the computer. Associated enumeration: F:System.Diagnostics.EventLogPermissionAccess.Write

.NET Framework
Disponible desde 2.0
Volver al principio
Mostrar: