EventInstance Classe

Definizione

Rappresenta un'informazione nella lingua di sistema per una voce del log eventi.

public ref class EventInstance
public class EventInstance
type EventInstance = class
Public Class EventInstance
Ereditarietà
EventInstance

Esempio

Nell'esempio di codice seguente viene scritta una voce di evento informativo e quindi viene riutilizzato per EventInstance scrivere una voce per un evento di avviso in un registro eventi esistente. Il testo del messaggio di evento viene specificato usando un identificatore di risorsa in un file di risorse del messaggio. Nell'esempio di codice si presuppone che il file di risorse del messaggio corrispondente sia stato registrato per l'origine.

// 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 = gcnew EventInstance( UpdateCycleCompleteMsgId,0 );

   // Write the event to the event log using the registered source.
   EventLog::WriteEvent( sourceName, myEvent, 0 );

   // 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.
   array<String^>^ss = {Environment::MachineName};
   EventLog::WriteEvent( sourceName, myEvent, ss );
}
else
{
   Console::WriteLine( "Warning - event source {0} not registered", sourceName );
}

// 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);
}
' Ensure that the source has already been registered using
' EventLogInstaller or EventLog.CreateEventSource.
Dim sourceName as String = "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.
    Dim myEvent As EventInstance = 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)
End If

Nell'esempio di codice viene usato il file di testo del messaggio seguente, integrato nella libreria di risorse EventLogMsgs.dll. Un file di testo del messaggio è l'origine da cui viene creato il file di risorse del messaggio. Il file di testo del messaggio definisce gli identificatori di risorsa e il testo per la categoria, il messaggio di evento e le stringhe di inserimento dei parametri.

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

Commenti

Usare EventInstance per scrivere una voce del registro eventi con un identificatore di risorsa anziché un valore stringa. Per scrivere una voce del registro eventi, inizializzare la InstanceId proprietà e passare l'istanza al WriteEvent metodo . Il Visualizzatore eventi usa l'identificatore dell'istanza per trovare e visualizzare la stringa corrispondente dal file di risorse localizzato in base alle impostazioni della lingua correnti. È necessario registrare l'origine evento con il file di risorse corrispondente prima di scrivere eventi usando gli identificatori di risorsa.

Quando si scrivono eventi, è possibile impostare la EntryType proprietà per specificare l'icona visualizzata dal Visualizzatore eventi per la voce. È anche possibile specificare una CategoryId proprietà per specificare la categoria visualizzata dal Visualizzatore eventi per la voce.

Il Visualizzatore eventi usa la categoria per filtrare gli eventi scritti da un'origine evento. Il Visualizzatore eventi può visualizzare la categoria come valore numerico oppure può usare la categoria come identificatore di risorsa per visualizzare una stringa di categoria localizzata.

Per visualizzare le stringhe di categoria localizzate nel Visualizzatore eventi, è necessario usare un'origine evento configurata con un file di risorse di categoria e impostare su CategoryId un identificatore di risorsa nel file di risorse di categoria. Se l'origine evento non dispone di un file di risorse di categoria configurato o se l'oggetto specificato CategoryId non indicizza una stringa nel file di risorse di categoria e quindi il Visualizzatore eventi visualizza il valore di categoria numerico per tale voce. Configurare il file di risorse di categoria, insieme al numero di stringhe di categoria nel file di risorse, usando o EventLogInstaller la EventSourceCreationData classe .

È necessario registrare un'origine per un registro eventi prima di usare EventInstance per scrivere un evento con il WriteEvent metodo . L'origine deve essere configurata per la scrittura di voci localizzate nel log e l'origine deve definire almeno un file di risorse del messaggio.

Create la nuova origine evento durante l'installazione dell'applicazione. Ciò consente al sistema operativo di aggiornare l'elenco di origini eventi registrate e le relative configurazioni. Se il sistema operativo non ha aggiornato l'elenco delle origini eventi e si tenta di scrivere un evento con la nuova origine, l'operazione di scrittura avrà esito negativo. È possibile configurare una nuova origine usando un EventLogInstalleroggetto o usando il CreateEventSource metodo . Per creare una nuova origine evento, è necessario disporre dei diritti amministrativi nel computer.

Per informazioni dettagliate sulla definizione dei messaggi di evento e sulla creazione di file di risorse del registro eventi, vedere l'articolo Message Compiler nella documentazione di Platform SDK.

Costruttori

EventInstance(Int64, Int32)

Consente di inizializzare una nuova istanza della classe EventInstance utilizzando gli identificatori di risorse specificati per il messaggio e il testo della categoria localizzati della voce dell'evento.

EventInstance(Int64, Int32, EventLogEntryType)

Consente di inizializzare una nuova istanza della classe EventInstance utilizzando gli identificatori di risorse specificati per il messaggio e il testo della categoria localizzati della voce dell'evento e il tipo di voce del log eventi specificato.

Proprietà

CategoryId

Ottiene o imposta l'identificatore di risorsa che specifica la categoria definita dall'applicazione della voce dell'evento.

EntryType

Ottiene o imposta il tipo di evento della voce del log eventi.

InstanceId

Ottiene o imposta l'identificatore di risorsa che definisce il testo del messaggio per la voce dell'evento.

Metodi

Equals(Object)

Determina se l'oggetto specificato è uguale all'oggetto corrente.

(Ereditato da Object)
GetHashCode()

Funge da funzione hash predefinita.

(Ereditato da Object)
GetType()

Ottiene l'oggetto Type dell'istanza corrente.

(Ereditato da Object)
MemberwiseClone()

Crea una copia superficiale dell'oggetto Object corrente.

(Ereditato da Object)
ToString()

Restituisce una stringa che rappresenta l'oggetto corrente.

(Ereditato da Object)

Si applica a

Vedi anche