Questo articolo è stato tradotto automaticamente. Per visualizzare l'articolo in inglese, selezionare la casella di controllo Inglese. È possibile anche visualizzare il testo inglese in una finestra popup posizionando il puntatore del mouse sopra il testo.
Traduzione
Inglese

Metodo EventLog.WriteEvent (String, EventInstance, Byte[], Object[])

 

Data di pubblicazione: ottobre 2016

Scrive una voce di registro eventi con i dati dell'evento specifici, le stringhe di sostituzione del messaggio e i dati binari associati, usando l'origine eventi registrata specificata.

Spazio dei nomi:   System.Diagnostics
Assembly:  System (in System.dll)

public static void WriteEvent(
	string source,
	EventInstance instance,
	byte[] data,
	params object[] values
)

Parametri

source
Type: System.String

Nome dell'origine eventi registrata per l'applicazione nel computer specificato.

instance
Type: System.Diagnostics.EventInstance

Istanza EventInstance che rappresenta una voce del registro eventi localizzata.

data
Type: System.Byte[]

Matrice di byte contenente i dati binari associati alla voce.

values
Type: System.Object[]

Matrice di stringhe per il merge della voce del registro eventi nel testo del messaggio.

Exception Condition
ArgumentException

Il source valore è una stringa vuota ("").

-oppure-

Il source è null.

-oppure-

instance.InstanceId è minore di zero o maggiore di UInt16.MaxValue.

-oppure-

values dispone di più di 256 elementi.

-oppure-

Uno del values elementi è superiore a 32766 byte.

-oppure-

I risultati di nome di origine in un percorso della chiave del Registro di sistema più lungo di 254 caratteri.

ArgumentNullException

instance è null.

InvalidOperationException

Impossibile aprire la chiave del Registro di sistema per il registro eventi.

Win32Exception

Il sistema operativo ha segnalato un errore durante la scrittura della voce dell'evento nel registro eventi. Un codice di errore di Windows non è disponibile.

Utilizzare questo metodo per scrivere una voce localizzata con dati aggiuntivi specifici dell'evento nel registro eventi, utilizzando un'origine già registrata come un'origine evento per il log appropriato. Specificare le proprietà evento con identificatori di risorsa, piuttosto che i valori di stringa. Il Visualizzatore eventi utilizza gli identificatori di risorsa per visualizzare le stringhe corrispondenti dal file di risorse localizzato per l'origine. Prima di scrivere eventi tramite identificatori di risorsa, è necessario registrare l'origine con il corrispondente file di risorse.

L'input instance istanza specifica il messaggio di evento e proprietà. Impostare il InstanceId del instance di input per il messaggio definito nel file di risorse del messaggio di origine. È anche possibile impostare il CategoryId e EntryType di instance input per definire il tipo di evento e di categoria della voce di evento. È inoltre possibile specificare una matrice di stringhe indipendenti dal linguaggio per inserire nel testo del messaggio. Impostare values per null Se il messaggio di evento non contiene segnaposto di formattazione per le stringhe di sostituzione.

Specificare i dati binari con un evento quando è necessario fornire dettagli aggiuntivi per l'evento. Ad esempio, utilizzare il data parametro per includere informazioni su un errore specifico. Il Visualizzatore eventi non interpreta i dati di evento associato. Visualizza i dati in formato esadecimale e di testo combinato. Utilizzare i dati specifici dell'evento sporadicamente; include solo se si è certi che possa risultare utile. È inoltre possibile utilizzare dati specifici dell'evento per archiviare le informazioni che dell'applicazione può elaborare in modo indipendente il Visualizzatore eventi. Ad esempio, si potrebbe scrivere un visualizzatore specifico per gli eventi o scrivere un programma che analizza il log eventi e consente di creare report che includono le informazioni dai dati specifici dell'evento.

L'origine specificata deve essere registrato per un log eventi prima di utilizzare WriteEvent. L'origine specificata deve essere configurato per la scrittura di voci localizzate nel log. l'origine deve contenere almeno un file di risorse di messaggio definito.

È necessario creare e configurare l'origine evento prima di scrivere la prima voce con l'origine. Creare la nuova origine eventi durante l'installazione dell'applicazione. Questo consente di tempo per il sistema operativo aggiornare l'elenco delle origini eventi registrati e la relativa configurazione. Se il sistema operativo non è aggiornato l'elenco delle origini evento e si tenta di scrivere un evento con la nuova origine, che l'operazione di scrittura avrà esito negativo. È possibile configurare una nuova origine mediante un EventLogInstaller, o tramite il CreateEventSource metodo. È necessario disporre dei diritti amministrativi sul computer per creare una nuova origine evento.

L'origine deve essere configurata per la scrittura di voci localizzate o per la scrittura di stringhe dirette. Utilizzare il WriteEntry metodo se l'applicazione scrive valori stringa direttamente nel registro eventi.

Se l'applicazione scrive voci tramite identificatori di risorsa e i valori stringa, è necessario registrare due origini separate. Ad esempio, configurare un'origine dei file di risorse e quindi utilizzare tale origine nel WriteEvent metodo per scrivere voci tramite identificatori di risorsa nel registro eventi. Quindi creare un'origine diversa senza file di risorse e utilizzarla nel WriteEntry metodo per scrivere stringhe direttamente nel log eventi.

Nell'esempio seguente scrive una voce di evento di tipo informativo e una voce di evento di avviso in un log eventi esistente. Il testo del messaggio di evento è specificato utilizzando un identificatore di risorsa in un file di risorse. Nell'esempio si presuppone che il corrispondente file di risorse è stato registrato per l'origine.


string sourceName = "SampleApplicationSource";
if(EventLog.SourceExists(sourceName))
{

    // Define an informational event and a warning event.

    // The message identifiers correspond to the message text in the
    // message resource file defined for the source.
    EventInstance myInfoEvent = new EventInstance(InformationMsgId, 0, EventLogEntryType.Information);
    EventInstance myWarningEvent = new EventInstance(WarningMsgId, 0, EventLogEntryType.Warning);

    // Insert the method name into the event log message.
    string [] insertStrings = {"EventLogSamples.WriteEventSample2"};

    // Write the events to the event log.

    EventLog.WriteEvent(sourceName, myInfoEvent); 

    // Append binary data to the warning event entry.
    byte [] binaryData = { 7, 8, 9, 10 };
    EventLog.WriteEvent(sourceName, myWarningEvent, binaryData, insertStrings); 
}
else 
{
    Console.WriteLine("Warning - event source {0} not registered", 
        sourceName);
}

Nell'esempio viene utilizzato il seguente file di testo di messaggio, compilato nella libreria di risorse EventLogMsgs. 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, messaggio di evento e le stringhe di inserimento di parametro.

; // 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
Disponibile da 2.0
Torna all'inizio
Mostra: