EventInstance Classe
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
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) |