Esta documentación está archivada y no tiene mantenimiento.

EventLog.WriteEntry (Método) (String, EventLogEntryType, Int32, Int16, Byte[])

Actualización: noviembre 2007

Escribe en el registro de eventos una entrada con el texto de mensaje dado, el identificador de eventos definido por la aplicación y la categoría definida por la aplicación y anexa datos binarios al mensaje.

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

public void WriteEntry(
	string message,
	EventLogEntryType type,
	int eventID,
	short category,
	byte[] rawData
)
public void WriteEntry(
	String message,
	EventLogEntryType type,
	int eventID,
	short category,
	byte[] rawData
)
public function WriteEntry(
	message : String, 
	type : EventLogEntryType, 
	eventID : int, 
	category : short, 
	rawData : byte[]
)

Parámetros

message
Tipo: System.String
Cadena que se va a escribir en el registro de eventos.
type
Tipo: System.Diagnostics.EventLogEntryType
Uno de los valores de EventLogEntryType.
eventID
Tipo: System.Int32
Identificador específico de la aplicación para el evento.
category
Tipo: System.Int16
Subcategoría específica de la aplicación asociada al mensaje.
rawData
Tipo: System.Byte[]
Matriz de bytes que incluye los datos binarios asociados a la entrada.

ExcepciónCondición
ArgumentException

Aún no se ha establecido la propiedad Source de EventLog.

O bien

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

O bien

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

O bien

eventID es menor que cero o mayor que UInt16.MaxValue.

O bien

La cadena del mensaje 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.

InvalidOperationException

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

InvalidEnumArgumentException

type no es un EventLogEntryType válido.

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.

Utilice esta sobrecarga para escribir en el registro de eventos datos específicos del evento definidos por la aplicación. El Visor de eventos no interpreta estos datos; muestra datos originales solamente en un formato hexadecimal y de texto combinado. Utilice los datos específicos del evento con moderación, incluyéndolos solamente si está seguro de que serán útiles para alguien que depure el problema. También se pueden utilizar datos específicos del evento para almacenar información que la aplicación puede procesar de forma independiente del Visor de eventos. Por ejemplo, se puede escribir un visor específicamente para los eventos o escribir un programa que busca el archivo de registro y crea informes que incluyen información de los datos específicos del evento.

Además de los datos binarios, se puede especificar una categoría definida por la aplicación y un identificador de eventos definido por la aplicación. El Visor de eventos usa la categoría para filtrar los eventos escritos por un origen de eventos. El Visor de eventos puede mostrar la categoría como valor numérico, o bien utilizarla como identificador de recursos para mostrar una cadena de categoría adaptada.

d3159s0c.alert_note(es-es,VS.90).gifNota:

El parámetro category debe ser un valor positivo. Los valores de categoría negativos aparecen como un número positivo complementario en el visor de eventos. Por ejemplo, -10 aparece como 65.526, -1 como 65.535.

Para mostrar cadenas de categoría adaptadas en el Visor de eventos, será necesario utilizar un origen de eventos configurado con un archivo de recursos de categorías y establecer el parámetro category en un identificador de recursos de dicho archivo. Si el origen de eventos no tuviera un archivo de recursos de categoría configurado, o si la propiedad category especificada no indizara una cadena en el archivo de recursos de categoría, el Visor de eventos mostrará el valor numérico de categoría para esa entrada. Para configurar el archivo de recursos de categorías, junto con el número de cadenas de categoría que incluye, deberán utilizarse las clases EventLogInstaller o EventSourceCreationData.

Los identificadores de eventos, junto con el origen de eventos, identifican de forma única un evento. Cada aplicación puede definir sus propios eventos numerados y las cadenas de descripción a las que se asignan. Los visores de eventos muestran estos valores para ayudar al usuario a determinar qué ha podido salir mal y sugerirle nuevas acciones.

Finalmente, se puede especificar un EventLogEntryType para el evento que se escribe en el registro de eventos. El parámetro type se indica mediante un icono y un texto en la columna Tipo del Visor de eventos de un registro. Este parámetro indica si el tipo de evento es un error, una advertencia, una información o una auditoría de aciertos o de errores.

Se debe establecer la propiedad Source en el componente EventLog para poder escribir entradas en el Registro. 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.

Si el origen especificado en la propiedad Source de esta instancia de EventLog no está registrado en el equipo donde el componente está escribiendo, WriteEntry llamará a CreateEventSource y registrará el origen.

d3159s0c.alert_note(es-es,VS.90).gifNota:

Si no se especifica una propiedad MachineName para la instancia de EventLog antes de llamar a CreateEventSource o a WriteEntry, se supone que se trata del equipo local (".")

Si el sistema tuviera que registrar Source mediante una llamada a WriteEntry y la propiedad Log no estuviera establecida en la instancia de EventLog, se usará de manera predeterminada el registro de aplicaciones.

d3159s0c.alert_note(es-es,VS.90).gifNota:

Los errores que se generan durante el proceso de registro de Source producen muchas de las excepciones enumeradas anteriormente.

El origen deberá configurarse para escribir o bien entradas adaptadas o bien cadenas directas. El método WriteEntry escribe la cadena especificada directamente en el registro de eventos, no utiliza un archivo de recursos de mensajes adaptado. Para escribir eventos mediante archivo de recursos de mensajes adaptado, deberá utilizarse el método WriteEvent.

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.

d3159s0c.alert_note(es-es,VS.90).gifNota:

Si se escribe una entrada en un equipo remoto, puede que el valor del mensaje (la cadena de texto) no sea el esperado si el equipo remoto no está ejecutando .NET Framework.

d3159s0c.alert_note(es-es,VS.90).gifNota:

Si el parámetro message contiene un carácter NULL, el mensaje en el registro de eventos se finaliza en el carácter NULL.

// Create the source, if it does not already exist.
string myLogName = "myNewLog";
if(!EventLog.SourceExists("MySource"))
{
   // An event log source should not be created and immediately used.
   // There is a latency time to enable the source, it should be created
   // prior to executing the application that uses the source.
   // Execute this sample a second time to use the new source.
   EventLog.CreateEventSource("MySource", myLogName);
   Console.WriteLine("Created EventSource");
   Console.WriteLine("Exiting, execute the application a second time to use the source.");
   return;
}
else
   myLogName = EventLog.LogNameFromSourceName("MySource",".");
// Create an EventLog and assign source.
EventLog myEventLog = new EventLog();
myEventLog.Source = "MySource";
myEventLog.Log = myLogName;

// Set the 'description' for the event.
string myMessage = "This is my event.";
EventLogEntryType myEventLogEntryType = EventLogEntryType.Warning;
int myApplicatinEventId = 1100;
short myApplicatinCategoryId = 1;

// Set the 'data' for the event.
byte[] myRawData = new byte[4];
for(int i=0;i<4;i++)
{
   myRawData[i]=1;
}
// Write the entry in the event log.
Console.WriteLine("Writing to EventLog.. ");
myEventLog.WriteEntry(myMessage,myEventLogEntryType, 
   myApplicatinEventId, myApplicatinCategoryId, myRawData);


// Create the source, if it does not already exist.
String myLogName = "myNewLog";
if (!(EventLog.SourceExists("MySource"))) {
    EventLog.CreateEventSource("MySource", myLogName);
    Console.WriteLine("Creating EventSource");
}
else {
    myLogName = EventLog.LogNameFromSourceName("MySource", ".");
} 
// Create an EventLog and assign source.
EventLog myEventLog = new EventLog();
myEventLog.set_Source("MySource");
myEventLog.set_Log(myLogName);

// Set the 'description' for the event.
String myMessage = "This is my event.";
EventLogEntryType myEventLogEntryType = EventLogEntryType.Warning;
int myApplicatinEventId = 1100;
short myApplicatinCategoryId = 1;

// Set the 'data' for the event.
ubyte myRawData[] = new ubyte[4];
for (int i = 0; i < 4; i++) {
    myRawData[i] = 1;
}
// Write the entry in the event log.
Console.WriteLine("Writing to EventLog.. ");
myEventLog.WriteEntry(myMessage, myEventLogEntryType, 
    myApplicatinEventId, myApplicatinCategoryId, myRawData);


Windows Vista, Windows XP SP2, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP Starter Edition, Windows Server 2003, Windows Server 2000 SP4, Windows Millennium Edition, Windows 98

.NET Framework y .NET Compact Framework no admiten todas las versiones de cada plataforma. Para obtener una lista de las versiones compatibles, vea Requisitos de sistema de .NET Framework.

.NET Framework

Compatible con: 3.5, 3.0, 2.0, 1.1, 1.0
Mostrar: