Exportar (0) Imprimir
Expandir todo

EventInstance (Clase)

Representa la información independiente del idioma de una entrada del registro de eventos.

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

public class EventInstance
public class EventInstance
public class EventInstance
No aplicable.

Utilice la clase EventInstance para escribir una entrada en el registro de eventos con un identificador de recursos en lugar de un valor de cadena. Para escribir una entrada en el registro de eventos, inicialice la propiedad InstanceId y pase la instancia al método WriteEvent. El Visor de eventos utiliza el identificador de instancia para buscar y mostrar, en función de la configuración de idioma actual, la cadena correspondiente en el archivo de recursos adaptado. Antes de escribir eventos con identificadores de recursos, deberá registrar el origen de eventos con el archivo de recursos correspondiente.

Al escribir eventos, puede establecer la propiedad EntryType para especificar el icono que el Visor de eventos va a mostrar para la entrada. También puede especificar una propiedad CategoryId para especificar la categoría que el Visor de eventos va a mostrar para la entrada.

El Visor de eventos utiliza 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.

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 CategoryId 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 CategoryId 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 dicha 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.

Deberá registrar un origen para un registro de eventos antes de utilizar EventInstance para escribir un evento con el método WriteEvent. El origen deberá estar configurado para escribir entradas adaptadas en el registro y deberá definir al menos un archivo de recursos de mensajes.

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 en 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.

Para obtener información detallada sobre la forma de definir mensajes de eventos y la forma de generar archivos de recursos de registro de eventos, vea el tema "Compilador de mensajes" en la documentación de Platform SDK en http://www.microsoft.com/spanish/msdn.

Nota de la plataforma Windows 98, Windows Millennium: Los registros de eventos no son compatibles con Windows 98 ni con Windows Millennium Edition (Me).

En el siguiente ejemplo de código se escribe una entrada de evento informativa y, a continuación, se reutiliza EventInstance para escribir una entrada para un evento de advertencia en un registro de eventos existente. El texto del mensaje de evento se especifica utilizando un identificador de recursos en un archivo de recursos de mensajes. En el ejemplo de código se supone que se ha registrado el archivo de recursos de mensajes correspondiente para el origen.


// Ensure that the source has already been registered using
// EventLogInstaller or EventLog.CreateEventSource.

string sourceName = "SampleApplicationSource";
if(EventLog.SourceExists(sourceName))
{
    // Define an informational event with no category.
    // The message identifier corresponds to the message text in the
    // message resource file defined for the source.
    EventInstance myEvent = new EventInstance(UpdateCycleCompleteMsgId, 0);
    
    // Write the event to the event log using the registered source.
    EventLog.WriteEvent(sourceName, myEvent);

    // Reuse the event data instance for another event entry.
    // Set the entry category and message identifiers for
    // the appropriate resource identifiers in the resource files
    // for the registered source.  Set the event type to Warning.

    myEvent.CategoryId = RefreshCategoryMsgId;
    myEvent.EntryType = EventLogEntryType.Warning;
    myEvent.InstanceId = ServerConnectionDownMsgId;

    // Write the event to the event log using the registered source.
    // Insert the machine name into the event message text.
    EventLog.WriteEvent(sourceName, myEvent, Environment.MachineName);
}
else 
{
    Console.WriteLine("Warning - event source {0} not registered", 
        sourceName);
}


En el ejemplo de código se utiliza el archivo de texto de mensaje siguiente, incluido en la biblioteca de recursos EventLogMsgs.dll. Un archivo de texto de mensaje es el origen desde el que se crea el archivo de recursos de mensajes. 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
.

System.Object
  System.Diagnostics.EventInstance

Los miembros estáticos públicos (Shared en Visual Basic) de este tipo son seguros para la ejecución de subprocesos. No se garantiza que los miembros de instancias sean seguros para la ejecución de subprocesos.

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

Adiciones de comunidad

AGREGAR
Mostrar:
© 2014 Microsoft