EventLog.WriteEvent EventLog.WriteEvent EventLog.WriteEvent EventLog.WriteEvent Method

Definizione

Scrive una voce di evento localizzata nel registro eventi.Writes a localized event entry to the event log.

Overload

WriteEvent(String, EventInstance, Object[]) WriteEvent(String, EventInstance, Object[]) WriteEvent(String, EventInstance, Object[]) WriteEvent(String, EventInstance, Object[])

Scrive una voce di registro eventi con i dati dell'evento specifici e le stringhe di sostituzione del messaggio, usando l'origine eventi registrata specificata.Writes an event log entry with the given event data and message replacement strings, using the specified registered event source.

WriteEvent(EventInstance, Object[]) WriteEvent(EventInstance, Object[]) WriteEvent(EventInstance, Object[]) WriteEvent(EventInstance, Object[])

Scrive una voce localizzata nel registro eventi.Writes a localized entry to the event log.

WriteEvent(EventInstance, Byte[], Object[]) WriteEvent(EventInstance, Byte[], Object[]) WriteEvent(EventInstance, Byte[], Object[]) WriteEvent(EventInstance, Byte[], Object[])

Scrive una voce di registro eventi con i dati dell'evento specifici, le stringhe di sostituzione del messaggio e i dati binari associati.Writes an event log entry with the given event data, message replacement strings, and associated binary data.

WriteEvent(String, EventInstance, Byte[], Object[]) WriteEvent(String, EventInstance, Byte[], Object[]) WriteEvent(String, EventInstance, Byte[], Object[]) WriteEvent(String, EventInstance, Byte[], Object[])

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.Writes an event log entry with the given event data, message replacement strings, and associated binary data, and using the specified registered event source.

WriteEvent(String, EventInstance, Object[]) WriteEvent(String, EventInstance, Object[]) WriteEvent(String, EventInstance, Object[]) WriteEvent(String, EventInstance, Object[])

Scrive una voce di registro eventi con i dati dell'evento specifici e le stringhe di sostituzione del messaggio, usando l'origine eventi registrata specificata.Writes an event log entry with the given event data and message replacement strings, using the specified registered event source.

public:
 static void WriteEvent(System::String ^ source, System::Diagnostics::EventInstance ^ instance, ... cli::array <System::Object ^> ^ values);
public static void WriteEvent (string source, System.Diagnostics.EventInstance instance, params object[] values);
static member WriteEvent : string * System.Diagnostics.EventInstance * obj[] -> unit
Public Shared Sub WriteEvent (source As String, instance As EventInstance, ParamArray values As Object())

Parametri

source
String String String String

Nome dell'origine eventi registrata per l'applicazione nel computer specificato.The name of the event source registered for the application on the specified computer.

instance
EventInstance EventInstance EventInstance EventInstance

Istanza EventInstance che rappresenta una voce del registro eventi localizzata.An EventInstance instance that represents a localized event log entry.

values
Object[]

Matrice di stringhe per il merge della voce del registro eventi nel testo del messaggio.An array of strings to merge into the message text of the event log entry.

Eccezioni

Il valore source è una stringa vuota ("").The source value is an empty string ("").

-oppure--or- Il valore di source è null.The source value is null.

-oppure--or- instance.InstanceId è minore di zero o maggiore di MaxValue.instance.InstanceId is less than zero or greater than MaxValue.

In alternativa-or- values presenta più di 256 elementi.values has more than 256 elements.

-oppure--or- Uno degli elementi di values presenta una lunghezza superiore a 32766 byte.One of the values elements is longer than 32766 bytes.

-oppure--or- A causa del nome origine una chiave del Registro di sistema risulta più lunga di 254 caratteri.The source name results in a registry key path longer than 254 characters.

Non è possibile aprire la chiave del Registro di sistema per il log eventi.The registry key for the event log could not be opened.

È stato riscontrato un errore durante la scrittura della voce di evento nel log eventi.The operating system reported an error when writing the event entry to the event log. Non è disponibile un codice di errore di Windows.A Windows error code is not available.

Esempi

Nell'esempio seguente vengono scritte una voce per gli eventi informativi e una voce di avviso in un registro eventi esistente.The following example writes an informational event entry and a warning event entry to an existing event log. Il testo del messaggio dell'evento viene specificato utilizzando un identificatore di risorsa in un file di risorse.The event message text is specified using a resource identifier in a resource file. Nell'esempio si presuppone che il file di risorse corrispondente sia stato registrato per l'origine.The example assumes the corresponding resource file has been registered for the source.

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 = gcnew EventInstance( InformationMsgId,0,EventLogEntryType::Information );
   EventInstance ^ myWarningEvent = gcnew EventInstance( WarningMsgId,0,EventLogEntryType::Warning );
   
   // Insert the method name into the event log message.
   array<String^>^insertStrings = {"EventLogSamples.WriteEventSample2"};
   
   // Write the events to the event log.
   EventLog::WriteEvent( sourceName, myInfoEvent, 0 );
   
   // Append binary data to the warning event entry.
   array<Byte>^binaryData = {7,8,9,10};
   EventLog::WriteEvent( sourceName, myWarningEvent, binaryData, insertStrings );
}
else
{
   Console::WriteLine( "Warning - event source {0} not registered", sourceName );
}

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);
}
Dim sourceName As String = "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.
    Dim myInfoEvent As EventInstance = new EventInstance(InformationMsgId, 0, EventLogEntryType.Information)
    Dim myWarningEvent As EventInstance = new EventInstance(WarningMsgId, 0, EventLogEntryType.Warning)

    ' Insert the method name into the event log message.
    Dim insertStrings() As String = {"EventLogSamples.WriteEventSample2"}

    ' Write the events to the event log.

    EventLog.WriteEvent(sourceName, myInfoEvent, insertStrings)

    ' Append binary data to the warning event entry.
    Dim binaryData() As Byte = { 7, 8, 9, 10 }
    EventLog.WriteEvent(sourceName, myWarningEvent, binaryData, insertStrings)
Else 
    Console.WriteLine("Warning - event source {0} not registered", _
        sourceName)
End If

Nell'esempio viene usato il file di testo del messaggio seguente, integrato nella libreria di risorse EventLogMsgs. dll.The example uses the following message text file, built into the resource library EventLogMsgs.dll. Un file di testo del messaggio è l'origine da cui viene creato il file di risorse del messaggio.A message text file is the source from which the message resource file is created. Il file di testo del messaggio definisce gli identificatori e il testo delle risorse per la categoria, il messaggio di evento e le stringhe di inserimento dei parametri.The message text file defines the resource identifiers and text for the category, event message, and parameter insertion strings.

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

Utilizzare questo metodo per scrivere una voce localizzata nel registro eventi, utilizzando un'origine già registrata come origine evento per il log appropriato.Use this method to write a localized entry to the event log, using a source already registered as an event source for the appropriate log. È possibile specificare le proprietà dell'evento con gli identificatori di risorsa anziché con i valori stringa.You specify the event properties with resource identifiers rather than string values. Il Visualizzatore eventi usa gli identificatori di risorsa per visualizzare le stringhe corrispondenti dal file di risorse localizzato per l'origine.The Event Viewer uses the resource identifiers to display the corresponding strings from the localized resource file for the source. È necessario registrare l'origine con il file di risorse corrispondente prima di scrivere gli eventi usando gli identificatori di risorsa.You must register the source with the corresponding resource file before you write events using resource identifiers.

L'istanza instance di input specifica il messaggio e le proprietà dell'evento.The input instance instance specifies the event message and properties. Imposta l' InstanceId oggetto instance dell'input per il messaggio definito nel file di risorse del messaggio di origine.Set the InstanceId of the instance input for the defined message in the source message resource file. Facoltativamente CategoryId , è possibile impostare e EntryType dell' instance input per definire la categoria e il tipo di evento della voce dell'evento.You can optionally set the CategoryId and EntryType of the instance input to define the category and event type of your event entry. È inoltre possibile specificare una matrice di stringhe indipendenti dalla lingua da inserire nel testo del messaggio localizzato.You can also specify an array of language-independent strings to insert into the localized message text. Impostare values sunull se il messaggio di evento non contiene segnaposto di formattazione per le stringhe di sostituzione.Set values to null if the event message does not contain formatting placeholders for replacement strings.

L'origine specificata deve essere registrata per un log eventi prima di WriteEventutilizzare.The specified source must be registered for an event log before using WriteEvent. L'origine specificata deve essere configurata per la scrittura di voci localizzate nel log. per l'origine deve essere definito almeno un file di risorse del messaggio.The specified source must be configured for writing localized entries to the log; the source must at minimum have a message resource file defined.

È necessario creare e configurare l'origine evento prima di scrivere la prima voce con l'origine.You must create and configure the event source before writing the first entry with the source. Creare la nuova origine evento durante l'installazione dell'applicazione.Create the new event source during the installation of your application. Ciò consente al sistema operativo di aggiornare l'elenco delle origini eventi registrate e la relativa configurazione.This allows time for the operating system to refresh its list of registered event sources and their configuration. 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.If the operating system has not refreshed its list of event sources, and you attempt to write an event with the new source, the write operation will fail. È possibile configurare una nuova origine usando EventLogInstallero il CreateEventSource metodo.You can configure a new source using an EventLogInstaller, or using the CreateEventSource method. Per creare una nuova origine evento, è necessario disporre dei diritti amministrativi nel computer.You must have administrative rights on the computer to create a new event source.

L'origine deve essere configurata per la scrittura di voci localizzate o per la scrittura di stringhe dirette.The source must be configured either for writing localized entries or for writing direct strings. Usare il WriteEntry metodo se l'applicazione scrive valori stringa direttamente nel registro eventi.Use the WriteEntry method if your application writes string values directly to the event log.

Se l'applicazione scrive voci usando sia gli identificatori di risorsa che i valori di stringa, è necessario registrare due origini separate.If your application writes entries using both resource identifiers and string values, you must register two separate sources. Ad esempio, configurare un'origine con i file di risorse e quindi usare tale origine nel WriteEvent metodo per scrivere le voci usando gli identificatori di risorsa nel registro eventi.For example, configure one source with resource files, and then use that source in the WriteEvent method to write entries using resource identifiers to the event log. Creare quindi un'origine diversa senza file di risorse e usare tale origine nel WriteEntry metodo per scrivere le stringhe direttamente nel registro eventi usando tale origine.Then create a different source without resource files, and use that source in the WriteEntry method to write strings directly to the event log using that source.

Sicurezza

EventLogPermission
per la scrittura delle informazioni del registro eventi nel computer.for writing the event log information on the computer. Enumerazione associata:WriteAssociated enumeration: Write

Vedi anche

WriteEvent(EventInstance, Object[]) WriteEvent(EventInstance, Object[]) WriteEvent(EventInstance, Object[]) WriteEvent(EventInstance, Object[])

Scrive una voce localizzata nel registro eventi.Writes a localized entry to the event log.

public:
 void WriteEvent(System::Diagnostics::EventInstance ^ instance, ... cli::array <System::Object ^> ^ values);
[System.Runtime.InteropServices.ComVisible(false)]
public void WriteEvent (System.Diagnostics.EventInstance instance, params object[] values);
member this.WriteEvent : System.Diagnostics.EventInstance * obj[] -> unit
Public Sub WriteEvent (instance As EventInstance, ParamArray values As Object())

Parametri

instance
EventInstance EventInstance EventInstance EventInstance

Istanza EventInstance che rappresenta una voce del registro eventi localizzata.An EventInstance instance that represents a localized event log entry.

values
Object[]

Matrice di stringhe per il merge della voce del registro eventi nel testo del messaggio.An array of strings to merge into the message text of the event log entry.

Eccezioni

La proprietà Source dell'oggetto EventLog non è stata impostata.The Source property of the EventLog has not been set.

-oppure--or- Il metodo ha tentato di registrare una nuova origine eventi, ma il nome del computer in MachineName non è valido.The method attempted to register a new event source, but the computer name in MachineName is not valid.

-oppure--or- L'origine è già registrata con un log eventi diverso.The source is already registered for a different event log.

-oppure--or- instance.InstanceId è minore di zero o maggiore di MaxValue.instance.InstanceId is less than zero or greater than MaxValue.

-oppure--or- values presenta più di 256 elementi.values has more than 256 elements.

In alternativa-or- Uno degli elementi di values presenta una lunghezza superiore a 32766 byte.One of the values elements is longer than 32766 bytes.

In alternativa-or- A causa del nome origine una chiave del Registro di sistema risulta più lunga di 254 caratteri.The source name results in a registry key path longer than 254 characters.

Non è possibile aprire la chiave del Registro di sistema per il log eventi.The registry key for the event log could not be opened.

È stato riscontrato un errore durante la scrittura della voce di evento nel log eventi.The operating system reported an error when writing the event entry to the event log. Non è disponibile un codice di errore di Windows.A Windows error code is not available.

Esempi

Nell'esempio seguente vengono scritte due voci di controllo nel registro myNewLogeventi.The following example writes two audit entries to the event log myNewLog. L'esempio crea una nuova origine evento e un nuovo registro eventi, se non esistono nel computer locale.The example creates a new event source and a new event log if they do not exist on the local computer. Il testo del messaggio dell'evento viene specificato utilizzando un identificatore di risorsa in un file di risorse.The event message text is specified using a resource identifier in a resource file.

// Create the event source if it does not exist.
String^ sourceName = "SampleApplicationSource";
if (  !EventLog::SourceExists( sourceName ) )
{
   
   // Call a local method to register the event log source
   // for the event log "myNewLog."  Use the resource file
   // EventLogMsgs.dll in the current directory for message text.
   String^ messageFile = String::Format( "{0}\\{1}", System::Environment::CurrentDirectory, "EventLogMsgs.dll" );
   CreateEventSourceSample1( messageFile );
}

// Get the event log corresponding to the existing source.
String^ myLogName = EventLog::LogNameFromSourceName( sourceName, "." );
EventLog^ myEventLog = gcnew EventLog( myLogName,".",sourceName );

// Define two audit events.
// The message identifiers correspond to the message text in the
// message resource file defined for the source.
EventInstance ^ myAuditSuccessEvent = gcnew EventInstance( AuditSuccessMsgId,0,EventLogEntryType::SuccessAudit );
EventInstance ^ myAuditFailEvent = gcnew EventInstance( AuditFailedMsgId,0,EventLogEntryType::FailureAudit );

// Insert the method name into the event log message.
array<String^>^insertStrings = {"EventLogSamples.WriteEventSample1"};

// Write the events to the event log.
myEventLog->WriteEvent( myAuditSuccessEvent, insertStrings );

// Append binary data to the audit failure event entry.
array<Byte>^binaryData = {3,4,5,6};
myEventLog->WriteEvent( myAuditFailEvent, binaryData, insertStrings );


// Create the event source if it does not exist.
string sourceName = "SampleApplicationSource";
if(!EventLog.SourceExists(sourceName))
{
    // Call a local method to register the event log source
    // for the event log "myNewLog."  Use the resource file
    // EventLogMsgs.dll in the current directory for message text.

    string messageFile =  String.Format("{0}\\{1}", 
        System.Environment.CurrentDirectory, 
        "EventLogMsgs.dll");

    CreateEventSourceSample1(messageFile);
}

// Get the event log corresponding to the existing source.
string myLogName = EventLog.LogNameFromSourceName(sourceName,".");

EventLog myEventLog = new EventLog(myLogName, ".", sourceName);

// Define two audit events.

// The message identifiers correspond to the message text in the
// message resource file defined for the source.
EventInstance myAuditSuccessEvent = new EventInstance(AuditSuccessMsgId, 0, EventLogEntryType.SuccessAudit);
EventInstance myAuditFailEvent = new EventInstance(AuditFailedMsgId, 0, EventLogEntryType.FailureAudit);

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

// Write the events to the event log.

myEventLog.WriteEvent(myAuditSuccessEvent, insertStrings); 

// Append binary data to the audit failure event entry.
byte [] binaryData = { 3, 4, 5, 6 };
myEventLog.WriteEvent(myAuditFailEvent, binaryData, insertStrings); 


Dim sourceName As String = "SampleApplicationSource"

' Create the event source if it does not exist.
If Not EventLog.SourceExists(sourceName)

    ' Call a local method to register the event log source
    ' for the event log "myNewLog."  Use the resource file
    ' EventLogMsgs.dll in the current directory for message text.

    Dim messageFile As String =  String.Format("{0}\\{1}", _
        System.Environment.CurrentDirectory, _
        "EventLogMsgs.dll")

    CreateEventSourceSample1(messageFile)
End If 

' Get the event log corresponding to the existing source.
Dim myLogName As String = EventLog.LogNameFromSourceName(sourceName,".")

Dim myEventLog As EventLog = new EventLog(myLogName, ".", sourceName)

' Define two audit events.
Dim myAuditSuccessEvent As EventInstance = new EventInstance(AuditSuccessMsgId, 0, EventLogEntryType.SuccessAudit)
Dim myAuditFailEvent As EventInstance = new EventInstance(AuditFailedMsgId, 0, EventLogEntryType.FailureAudit)

' Insert the method name into the event log message.
Dim insertStrings() As String = {"EventLogSamples.WriteEventSample1"}

' Write the events to the event log.

myEventLog.WriteEvent(myAuditSuccessEvent, insertStrings)

' Append binary data to the audit failure event entry.
Dim binaryData() As Byte = { 7, 8, 9, 10 }
myEventLog.WriteEvent(myAuditFailEvent, binaryData, insertStrings)

Nell'esempio viene usato il file di testo del messaggio seguente, integrato nella libreria di risorse EventLogMsgs. dll.The example uses the following message text file, built into the resource library EventLogMsgs.dll. Un file di testo del messaggio è l'origine da cui viene creato il file di risorse del messaggio.A message text file is the source from which the message resource file is created. Il file di testo del messaggio definisce gli identificatori e il testo delle risorse per la categoria, il messaggio di evento e le stringhe di inserimento dei parametri.The message text file defines the resource identifiers and text for the category, event message, and parameter insertion strings.

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

Utilizzare questo metodo per scrivere una voce localizzata nel registro eventi.Use this method to write a localized entry to the event log. È possibile specificare le proprietà dell'evento con gli identificatori di risorsa anziché con i valori stringa.You specify the event properties with resource identifiers rather than string values. Il Visualizzatore eventi utilizza gli identificatori di risorsa per visualizzare le stringhe corrispondenti dal file di risorse localizzato Sourceper.The Event Viewer uses the resource identifiers to display the corresponding strings from the localized resource file for the Source. È necessario registrare l'origine con il file di risorse corrispondente prima di scrivere gli eventi usando gli identificatori di risorsa.You must register the source with the corresponding resource file before you write events using resource identifiers.

L'istanza instance di input specifica il messaggio e le proprietà dell'evento.The input instance instance specifies the event message and properties. Imposta l' InstanceId oggetto instance dell'input per il messaggio definito nel file di risorse del messaggio di origine.Set the InstanceId of the instance input for the defined message in the source message resource file. Facoltativamente CategoryId , è possibile impostare e EntryType dell' instance input per definire la categoria e il tipo di evento della voce dell'evento.You can optionally set the CategoryId and EntryType of the instance input to define the category and event type of your event entry. È inoltre possibile specificare una matrice di stringhe indipendenti dalla lingua da inserire nel testo del messaggio localizzato.You can also specify an array of language-independent strings to insert into the localized message text. Impostare values sunull se il messaggio di evento non contiene segnaposto di formattazione per le stringhe di sostituzione.Set values to null if the event message does not contain formatting placeholders for replacement strings.

È necessario impostare la Source proprietà EventLog sul componente prima di utilizzare WriteEvent.You must set the Source property on your EventLog component before using WriteEvent. L'origine specificata deve essere configurata per la scrittura di voci localizzate nel log. per l'origine deve essere definito almeno un file di risorse del messaggio.The specified source must be configured for writing localized entries to the log; the source must at minimum have a message resource file defined.

È necessario creare e configurare l'origine evento prima di scrivere la prima voce con l'origine.You must create and configure the event source before writing the first entry with the source. Creare la nuova origine evento durante l'installazione dell'applicazione.Create the new event source during the installation of your application. Ciò consente al sistema operativo di aggiornare l'elenco delle origini eventi registrate e la relativa configurazione.This allows time for the operating system to refresh its list of registered event sources and their configuration. 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.If the operating system has not refreshed its list of event sources, and you attempt to write an event with the new source, the write operation will fail. È possibile configurare una nuova origine usando EventLogInstallero il CreateEventSource metodo.You can configure a new source using an EventLogInstaller, or using the CreateEventSource method. Per creare una nuova origine evento, è necessario disporre dei diritti amministrativi nel computer.You must have administrative rights on the computer to create a new event source.

L'origine deve essere configurata per la scrittura di voci localizzate o per la scrittura di stringhe dirette.The source must be configured either for writing localized entries or for writing direct strings. Usare il WriteEntry metodo se l'applicazione scrive valori stringa direttamente nel registro eventi.Use the WriteEntry method if your application writes string values directly to the event log.

Se l'applicazione scrive voci usando sia gli identificatori di risorsa che i valori di stringa, è necessario registrare due origini separate.If your application writes entries using both resource identifiers and string values, you must register two separate sources. Ad esempio, configurare un'origine con i file di risorse e quindi usare tale origine nel WriteEvent metodo per scrivere le voci usando gli identificatori di risorsa nel registro eventi.For example, configure one source with resource files, and then use that source in the WriteEvent method to write entries using resource identifiers to the event log. Creare quindi un'origine diversa senza file di risorse e usare tale origine nel WriteEntry metodo per scrivere le stringhe direttamente nel registro eventi usando tale origine.Then create a different source without resource files, and use that source in the WriteEntry method to write strings directly to the event log using that source.

Nota

Se si scrive una voce in un computer remoto, il valore della message stringa potrebbe non essere quello previsto se il computer remoto non esegue la .NET Framework.If you write an entry to a remote computer, the value of the message string might not be what you expect if the remote computer is not running the .NET Framework. Inoltre, la message stringa non può contenere%n, dove n è un valore intero (ad esempio,% 1), perché il Visualizzatore eventi lo considera come una stringa di inserimento.Also, the message string cannot contain %n, where n is an integer value (for example, %1), because the event viewer treats it as an insertion string. Poiché un protocollo Internet, versione 6 (IPv6) può contenere questa sequenza di caratteri, non è possibile registrare un messaggio di evento contenente un indirizzo IPv6.Because an Internet Protocol, version 6 (IPv6) address can contain this character sequence, you cannot log an event message that contains an IPv6 address.

Sicurezza

EventLogPermission
per la scrittura delle informazioni del registro eventi nel computer.for writing the event log information on the computer. Enumerazione associata:WriteAssociated enumeration: Write

Vedi anche

WriteEvent(EventInstance, Byte[], Object[]) WriteEvent(EventInstance, Byte[], Object[]) WriteEvent(EventInstance, Byte[], Object[]) WriteEvent(EventInstance, Byte[], Object[])

Scrive una voce di registro eventi con i dati dell'evento specifici, le stringhe di sostituzione del messaggio e i dati binari associati.Writes an event log entry with the given event data, message replacement strings, and associated binary data.

public:
 void WriteEvent(System::Diagnostics::EventInstance ^ instance, cli::array <System::Byte> ^ data, ... cli::array <System::Object ^> ^ values);
[System.Runtime.InteropServices.ComVisible(false)]
public void WriteEvent (System.Diagnostics.EventInstance instance, byte[] data, params object[] values);
member this.WriteEvent : System.Diagnostics.EventInstance * byte[] * obj[] -> unit
Public Sub WriteEvent (instance As EventInstance, data As Byte(), ParamArray values As Object())

Parametri

instance
EventInstance EventInstance EventInstance EventInstance

Istanza EventInstance che rappresenta una voce del registro eventi localizzata.An EventInstance instance that represents a localized event log entry.

data
Byte[]

Matrice di byte contenente i dati binari associati alla voce.An array of bytes that holds the binary data associated with the entry.

values
Object[]

Matrice di stringhe per il merge della voce del registro eventi nel testo del messaggio.An array of strings to merge into the message text of the event log entry.

Eccezioni

La proprietà Source dell'oggetto EventLog non è stata impostata.The Source property of the EventLog has not been set.

-oppure--or- Il metodo ha tentato di registrare una nuova origine eventi, ma il nome del computer in MachineName non è valido.The method attempted to register a new event source, but the computer name in MachineName is not valid.

In alternativa-or- L'origine è già registrata con un log eventi diverso.The source is already registered for a different event log.

-oppure--or- instance.InstanceId è minore di zero o maggiore di MaxValue.instance.InstanceId is less than zero or greater than MaxValue.

-oppure--or- values presenta più di 256 elementi.values has more than 256 elements.

In alternativa-or- Uno degli elementi di values presenta una lunghezza superiore a 32766 byte.One of the values elements is longer than 32766 bytes.

-oppure--or- A causa del nome origine una chiave del Registro di sistema risulta più lunga di 254 caratteri.The source name results in a registry key path longer than 254 characters.

Non è possibile aprire la chiave del Registro di sistema per il log eventi.The registry key for the event log could not be opened.

È stato riscontrato un errore durante la scrittura della voce di evento nel log eventi.The operating system reported an error when writing the event entry to the event log. Non è disponibile un codice di errore di Windows.A Windows error code is not available.

Esempi

Nell'esempio seguente vengono scritte due voci di controllo nel registro myNewLogeventi.The following example writes two audit entries to the event log myNewLog. L'esempio crea una nuova origine evento e un nuovo registro eventi, se non esistono nel computer locale.The example creates a new event source and a new event log if they do not exist on the local computer. Il testo del messaggio dell'evento viene specificato utilizzando un identificatore di risorsa in un file di risorse.The event message text is specified using a resource identifier in a resource file.

// Create the event source if it does not exist.
String^ sourceName = "SampleApplicationSource";
if (  !EventLog::SourceExists( sourceName ) )
{
   
   // Call a local method to register the event log source
   // for the event log "myNewLog."  Use the resource file
   // EventLogMsgs.dll in the current directory for message text.
   String^ messageFile = String::Format( "{0}\\{1}", System::Environment::CurrentDirectory, "EventLogMsgs.dll" );
   CreateEventSourceSample1( messageFile );
}

// Get the event log corresponding to the existing source.
String^ myLogName = EventLog::LogNameFromSourceName( sourceName, "." );
EventLog^ myEventLog = gcnew EventLog( myLogName,".",sourceName );

// Define two audit events.
// The message identifiers correspond to the message text in the
// message resource file defined for the source.
EventInstance ^ myAuditSuccessEvent = gcnew EventInstance( AuditSuccessMsgId,0,EventLogEntryType::SuccessAudit );
EventInstance ^ myAuditFailEvent = gcnew EventInstance( AuditFailedMsgId,0,EventLogEntryType::FailureAudit );

// Insert the method name into the event log message.
array<String^>^insertStrings = {"EventLogSamples.WriteEventSample1"};

// Write the events to the event log.
myEventLog->WriteEvent( myAuditSuccessEvent, insertStrings );

// Append binary data to the audit failure event entry.
array<Byte>^binaryData = {3,4,5,6};
myEventLog->WriteEvent( myAuditFailEvent, binaryData, insertStrings );


// Create the event source if it does not exist.
string sourceName = "SampleApplicationSource";
if(!EventLog.SourceExists(sourceName))
{
    // Call a local method to register the event log source
    // for the event log "myNewLog."  Use the resource file
    // EventLogMsgs.dll in the current directory for message text.

    string messageFile =  String.Format("{0}\\{1}", 
        System.Environment.CurrentDirectory, 
        "EventLogMsgs.dll");

    CreateEventSourceSample1(messageFile);
}

// Get the event log corresponding to the existing source.
string myLogName = EventLog.LogNameFromSourceName(sourceName,".");

EventLog myEventLog = new EventLog(myLogName, ".", sourceName);

// Define two audit events.

// The message identifiers correspond to the message text in the
// message resource file defined for the source.
EventInstance myAuditSuccessEvent = new EventInstance(AuditSuccessMsgId, 0, EventLogEntryType.SuccessAudit);
EventInstance myAuditFailEvent = new EventInstance(AuditFailedMsgId, 0, EventLogEntryType.FailureAudit);

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

// Write the events to the event log.

myEventLog.WriteEvent(myAuditSuccessEvent, insertStrings); 

// Append binary data to the audit failure event entry.
byte [] binaryData = { 3, 4, 5, 6 };
myEventLog.WriteEvent(myAuditFailEvent, binaryData, insertStrings); 


Dim sourceName As String = "SampleApplicationSource"

' Create the event source if it does not exist.
If Not EventLog.SourceExists(sourceName)

    ' Call a local method to register the event log source
    ' for the event log "myNewLog."  Use the resource file
    ' EventLogMsgs.dll in the current directory for message text.

    Dim messageFile As String =  String.Format("{0}\\{1}", _
        System.Environment.CurrentDirectory, _
        "EventLogMsgs.dll")

    CreateEventSourceSample1(messageFile)
End If 

' Get the event log corresponding to the existing source.
Dim myLogName As String = EventLog.LogNameFromSourceName(sourceName,".")

Dim myEventLog As EventLog = new EventLog(myLogName, ".", sourceName)

' Define two audit events.
Dim myAuditSuccessEvent As EventInstance = new EventInstance(AuditSuccessMsgId, 0, EventLogEntryType.SuccessAudit)
Dim myAuditFailEvent As EventInstance = new EventInstance(AuditFailedMsgId, 0, EventLogEntryType.FailureAudit)

' Insert the method name into the event log message.
Dim insertStrings() As String = {"EventLogSamples.WriteEventSample1"}

' Write the events to the event log.

myEventLog.WriteEvent(myAuditSuccessEvent, insertStrings)

' Append binary data to the audit failure event entry.
Dim binaryData() As Byte = { 7, 8, 9, 10 }
myEventLog.WriteEvent(myAuditFailEvent, binaryData, insertStrings)

Nell'esempio viene usato il file di testo del messaggio seguente, integrato nella libreria di risorse EventLogMsgs. dll.The example uses the following message text file, built into the resource library EventLogMsgs.dll. Un file di testo del messaggio è l'origine da cui viene creato il file di risorse del messaggio.A message text file is the source from which the message resource file is created. Il file di testo del messaggio definisce gli identificatori e il testo delle risorse per la categoria, il messaggio di evento e le stringhe di inserimento dei parametri.The message text file defines the resource identifiers and text for the category, event message, and parameter insertion strings.

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

Utilizzare questo metodo per scrivere una voce localizzata con dati aggiuntivi specifici dell'evento nel registro eventi.Use this method to write a localized entry with additional event-specific data to the event log. È possibile specificare le proprietà dell'evento con gli identificatori di risorsa anziché con i valori stringa.You specify the event properties with resource identifiers rather than string values. Il Visualizzatore eventi utilizza gli identificatori di risorsa per visualizzare le stringhe corrispondenti dal file di risorse localizzato Sourceper.The Event Viewer uses the resource identifiers to display the corresponding strings from the localized resource file for the Source. È necessario registrare l'origine con il file di risorse corrispondente prima di scrivere gli eventi usando gli identificatori di risorsa.You must register the source with the corresponding resource file before you write events using resource identifiers.

L'istanza instance di input specifica il messaggio e le proprietà dell'evento.The input instance instance specifies the event message and properties. Imposta l' InstanceId oggetto instance dell'input per il messaggio definito nel file di risorse del messaggio di origine.Set the InstanceId of the instance input for the defined message in the source message resource file. Facoltativamente CategoryId , è possibile impostare e EntryType dell' instance input per definire la categoria e il tipo di evento della voce dell'evento.You can optionally set the CategoryId and EntryType of the instance input to define the category and event type of your event entry. È inoltre possibile specificare una matrice di stringhe indipendenti dalla lingua da inserire nel testo del messaggio localizzato.You can also specify an array of language-independent strings to insert into the localized message text. Impostare values sunull se il messaggio di evento non contiene segnaposto di formattazione per le stringhe di sostituzione.Set values to null if the event message does not contain formatting placeholders for replacement strings.

Specificare i dati binari con un evento quando è necessario fornire dettagli aggiuntivi per l'evento.Specify binary data with an event when it is necessary to provide additional details for the event. Usare, ad esempio, data il parametro per includere informazioni su un errore specifico.For example, use the data parameter to include information on a specific error. Il Visualizzatore eventi non interpreta i dati dell'evento associati. vengono visualizzati i dati in un formato esadecimale e di testo combinato.The Event Viewer does not interpret the associated event data; it displays the data in a combined hexadecimal and text format. Utilizzare dati specifici degli eventi in modo sporadico; includerlo solo se si è certi che sarà utile.Use event-specific data sparingly; include it only if you are sure it will be useful. È anche possibile usare dati specifici dell'evento per archiviare le informazioni che l'applicazione può elaborare in modo indipendente dal Visualizzatore eventi.You can also use event-specific data to store information the application can process independently of the Event Viewer. Ad esempio, è possibile scrivere un visualizzatore in modo specifico per gli eventi oppure scrivere un programma che analizza il registro eventi e crea report che includono informazioni dei dati specifici dell'evento.For example, you could write a viewer specifically for your events, or write a program that scans the event log and creates reports that include information from the event-specific data.

È necessario impostare la Source proprietà EventLog sul componente prima del componente prima di WriteEventutilizzare.You must set the Source property on your EventLog component before component before using WriteEvent. L'origine specificata deve essere configurata per la scrittura di voci localizzate nel log. per l'origine deve essere definito almeno un file di risorse del messaggio.The specified source must be configured for writing localized entries to the log; the source must at minimum have a message resource file defined.

È necessario creare e configurare l'origine evento prima di scrivere la prima voce con l'origine.You must create and configure the event source before writing the first entry with the source. Creare la nuova origine evento durante l'installazione dell'applicazione.Create the new event source during the installation of your application. Ciò consente al sistema operativo di aggiornare l'elenco delle origini eventi registrate e la relativa configurazione.This allows time for the operating system to refresh its list of registered event sources and their configuration. 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.If the operating system has not refreshed its list of event sources, and you attempt to write an event with the new source, the write operation will fail. È possibile configurare una nuova origine usando EventLogInstallero il CreateEventSource metodo.You can configure a new source using an EventLogInstaller, or using the CreateEventSource method. Per creare una nuova origine evento, è necessario disporre dei diritti amministrativi nel computer.You must have administrative rights on the computer to create a new event source.

Nota

Se non si specifica un oggetto MachineName per l' EventLog istanza prima di chiamare WriteEvent, viene utilizzato il computer locale (".").If you do not specify a MachineName for your EventLog instance before you call WriteEvent, the local computer (".") is assumed.

L'origine deve essere configurata per la scrittura di voci localizzate o per la scrittura di stringhe dirette.The source must be configured either for writing localized entries or for writing direct strings. Usare il WriteEntry metodo se l'applicazione scrive valori stringa direttamente nel registro eventi.Use the WriteEntry method if your application writes string values directly to the event log.

Se l'applicazione scrive voci usando sia gli identificatori di risorsa che i valori di stringa, è necessario registrare due origini separate.If your application writes entries using both resource identifiers and string values, you must register two separate sources. Ad esempio, configurare un'origine con i file di risorse e quindi usare tale origine nel WriteEvent metodo per scrivere le voci usando gli identificatori di risorsa nel registro eventi.For example, configure one source with resource files, and then use that source in the WriteEvent method to write entries using resource identifiers to the event log. Creare quindi un'origine diversa senza file di risorse e usare tale origine nel WriteEntry metodo per scrivere le stringhe direttamente nel registro eventi usando tale origine.Then create a different source without resource files, and use that source in the WriteEntry method to write strings directly to the event log using that source.

Nota

Se si scrive una voce in un computer remoto, il valore della message stringa potrebbe non essere quello previsto se il computer remoto non esegue la .NET Framework.If you write an entry to a remote computer, the value of the message string might not be what you expect if the remote computer is not running the .NET Framework. Inoltre, la message stringa non può contenere%n, dove n è un valore intero (ad esempio,% 1), perché il Visualizzatore eventi lo considera come una stringa di inserimento.Also, the message string cannot contain %n, where n is an integer value (for example, %1), because the event viewer treats it as an insertion string. Poiché un protocollo Internet, versione 6 (IPv6) può contenere questa sequenza di caratteri, non è possibile registrare un messaggio di evento contenente un indirizzo IPv6.Because an Internet Protocol, version 6 (IPv6) address can contain this character sequence, you cannot log an event message that contains an IPv6 address.

Sicurezza

EventLogPermission
per la scrittura delle informazioni del registro eventi nel computer.for writing the event log information on the computer. Enumerazione associata:WriteAssociated enumeration: Write

Vedi anche

WriteEvent(String, EventInstance, Byte[], Object[]) WriteEvent(String, EventInstance, Byte[], Object[]) WriteEvent(String, EventInstance, Byte[], Object[]) WriteEvent(String, EventInstance, Byte[], Object[])

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.Writes an event log entry with the given event data, message replacement strings, and associated binary data, and using the specified registered event source.

public:
 static void WriteEvent(System::String ^ source, System::Diagnostics::EventInstance ^ instance, cli::array <System::Byte> ^ data, ... cli::array <System::Object ^> ^ values);
public static void WriteEvent (string source, System.Diagnostics.EventInstance instance, byte[] data, params object[] values);
static member WriteEvent : string * System.Diagnostics.EventInstance * byte[] * obj[] -> unit
Public Shared Sub WriteEvent (source As String, instance As EventInstance, data As Byte(), ParamArray values As Object())

Parametri

source
String String String String

Nome dell'origine eventi registrata per l'applicazione nel computer specificato.The name of the event source registered for the application on the specified computer.

instance
EventInstance EventInstance EventInstance EventInstance

Istanza EventInstance che rappresenta una voce del registro eventi localizzata.An EventInstance instance that represents a localized event log entry.

data
Byte[]

Matrice di byte contenente i dati binari associati alla voce.An array of bytes that holds the binary data associated with the entry.

values
Object[]

Matrice di stringhe per il merge della voce del registro eventi nel testo del messaggio.An array of strings to merge into the message text of the event log entry.

Eccezioni

Il valore source è una stringa vuota ("").The source value is an empty string ("").

-oppure--or- Il valore di source è null.The source value is null.

-oppure--or- instance.InstanceId è minore di zero o maggiore di MaxValue.instance.InstanceId is less than zero or greater than MaxValue.

-oppure--or- values presenta più di 256 elementi.values has more than 256 elements.

-oppure--or- Uno degli elementi di values presenta una lunghezza superiore a 32766 byte.One of the values elements is longer than 32766 bytes.

-oppure--or- A causa del nome origine una chiave del Registro di sistema risulta più lunga di 254 caratteri.The source name results in a registry key path longer than 254 characters.

Non è possibile aprire la chiave del Registro di sistema per il log eventi.The registry key for the event log could not be opened.

È stato riscontrato un errore durante la scrittura della voce di evento nel log eventi.The operating system reported an error when writing the event entry to the event log. Non è disponibile un codice di errore di Windows.A Windows error code is not available.

Esempi

Nell'esempio seguente vengono scritte una voce per gli eventi informativi e una voce di avviso in un registro eventi esistente.The following example writes an informational event entry and a warning event entry to an existing event log. Il testo del messaggio dell'evento viene specificato utilizzando un identificatore di risorsa in un file di risorse.The event message text is specified using a resource identifier in a resource file. Nell'esempio si presuppone che il file di risorse corrispondente sia stato registrato per l'origine.The example assumes the corresponding resource file has been registered for the source.

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 = gcnew EventInstance( InformationMsgId,0,EventLogEntryType::Information );
   EventInstance ^ myWarningEvent = gcnew EventInstance( WarningMsgId,0,EventLogEntryType::Warning );
   
   // Insert the method name into the event log message.
   array<String^>^insertStrings = {"EventLogSamples.WriteEventSample2"};
   
   // Write the events to the event log.
   EventLog::WriteEvent( sourceName, myInfoEvent, 0 );
   
   // Append binary data to the warning event entry.
   array<Byte>^binaryData = {7,8,9,10};
   EventLog::WriteEvent( sourceName, myWarningEvent, binaryData, insertStrings );
}
else
{
   Console::WriteLine( "Warning - event source {0} not registered", sourceName );
}

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);
}
Dim sourceName As String = "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.
    Dim myInfoEvent As EventInstance = new EventInstance(InformationMsgId, 0, EventLogEntryType.Information)
    Dim myWarningEvent As EventInstance = new EventInstance(WarningMsgId, 0, EventLogEntryType.Warning)

    ' Insert the method name into the event log message.
    Dim insertStrings() As String = {"EventLogSamples.WriteEventSample2"}

    ' Write the events to the event log.

    EventLog.WriteEvent(sourceName, myInfoEvent, insertStrings)

    ' Append binary data to the warning event entry.
    Dim binaryData() As Byte = { 7, 8, 9, 10 }
    EventLog.WriteEvent(sourceName, myWarningEvent, binaryData, insertStrings)
Else 
    Console.WriteLine("Warning - event source {0} not registered", _
        sourceName)
End If

Nell'esempio viene usato il file di testo del messaggio seguente, integrato nella libreria di risorse EventLogMsgs. dll.The example uses the following message text file, built into the resource library EventLogMsgs.dll. Un file di testo del messaggio è l'origine da cui viene creato il file di risorse del messaggio.A message text file is the source from which the message resource file is created. Il file di testo del messaggio definisce gli identificatori e il testo delle risorse per la categoria, il messaggio di evento e le stringhe di inserimento dei parametri.The message text file defines the resource identifiers and text for the category, event message, and parameter insertion strings.

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

Utilizzare questo metodo per scrivere una voce localizzata con dati aggiuntivi specifici dell'evento nel registro eventi, utilizzando un'origine già registrata come origine evento per il log appropriato.Use this method to write a localized entry with additional event-specific data to the event log, using a source already registered as an event source for the appropriate log. È possibile specificare le proprietà dell'evento con gli identificatori di risorsa anziché con i valori stringa.You specify the event properties with resource identifiers rather than string values. Il Visualizzatore eventi usa gli identificatori di risorsa per visualizzare le stringhe corrispondenti dal file di risorse localizzato per l'origine.The Event Viewer uses the resource identifiers to display the corresponding strings from the localized resource file for the source. È necessario registrare l'origine con il file di risorse corrispondente prima di scrivere gli eventi usando gli identificatori di risorsa.You must register the source with the corresponding resource file before you write events using resource identifiers.

L'istanza instance di input specifica il messaggio e le proprietà dell'evento.The input instance instance specifies the event message and properties. Imposta l' InstanceId oggetto instance dell'input per il messaggio definito nel file di risorse del messaggio di origine.Set the InstanceId of the instance input for the defined message in the source message resource file. Facoltativamente CategoryId , è possibile impostare e EntryType dell' instance input per definire la categoria e il tipo di evento della voce dell'evento.You can optionally set the CategoryId and EntryType of the instance input to define the category and event type of your event entry. È inoltre possibile specificare una matrice di stringhe indipendenti dalla lingua da inserire nel testo del messaggio localizzato.You can also specify an array of language-independent strings to insert into the localized message text. Impostare values sunull se il messaggio di evento non contiene segnaposto di formattazione per le stringhe di sostituzione.Set values to null if the event message does not contain formatting placeholders for replacement strings.

Specificare i dati binari con un evento quando è necessario fornire dettagli aggiuntivi per l'evento.Specify binary data with an event when it is necessary to provide additional details for the event. Usare, ad esempio, data il parametro per includere informazioni su un errore specifico.For example, use the data parameter to include information on a specific error. Il Visualizzatore eventi non interpreta i dati dell'evento associati. vengono visualizzati i dati in un formato esadecimale e di testo combinato.The Event Viewer does not interpret the associated event data; it displays the data in a combined hexadecimal and text format. Utilizzare dati specifici degli eventi in modo sporadico; includerlo solo se si è certi che sarà utile.Use event-specific data sparingly; include it only if you are sure it will be useful. È anche possibile usare dati specifici dell'evento per archiviare le informazioni che l'applicazione può elaborare in modo indipendente dal Visualizzatore eventi.You can also use event-specific data to store information the application can process independently of the Event Viewer. Ad esempio, è possibile scrivere un visualizzatore in modo specifico per gli eventi oppure scrivere un programma che analizza il registro eventi e crea report che includono informazioni dei dati specifici dell'evento.For example, you could write a viewer specifically for your events, or write a program that scans the event log and creates reports that include information from the event-specific data.

L'origine specificata deve essere registrata per un log eventi prima di WriteEventutilizzare.The specified source must be registered for an event log before using WriteEvent. L'origine specificata deve essere configurata per la scrittura di voci localizzate nel log. per l'origine deve essere definito almeno un file di risorse del messaggio.The specified source must be configured for writing localized entries to the log; the source must at minimum have a message resource file defined.

È necessario creare e configurare l'origine evento prima di scrivere la prima voce con l'origine.You must create and configure the event source before writing the first entry with the source. Creare la nuova origine evento durante l'installazione dell'applicazione.Create the new event source during the installation of your application. Ciò consente al sistema operativo di aggiornare l'elenco delle origini eventi registrate e la relativa configurazione.This allows time for the operating system to refresh its list of registered event sources and their configuration. 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.If the operating system has not refreshed its list of event sources, and you attempt to write an event with the new source, the write operation will fail. È possibile configurare una nuova origine usando EventLogInstallero il CreateEventSource metodo.You can configure a new source using an EventLogInstaller, or using the CreateEventSource method. Per creare una nuova origine evento, è necessario disporre dei diritti amministrativi nel computer.You must have administrative rights on the computer to create a new event source.

L'origine deve essere configurata per la scrittura di voci localizzate o per la scrittura di stringhe dirette.The source must be configured either for writing localized entries or for writing direct strings. Usare il WriteEntry metodo se l'applicazione scrive valori stringa direttamente nel registro eventi.Use the WriteEntry method if your application writes string values directly to the event log.

Se l'applicazione scrive voci usando sia gli identificatori di risorsa che i valori di stringa, è necessario registrare due origini separate.If your application writes entries using both resource identifiers and string values, you must register two separate sources. Ad esempio, configurare un'origine con i file di risorse e quindi usare tale origine nel WriteEvent metodo per scrivere le voci usando gli identificatori di risorsa nel registro eventi.For example, configure one source with resource files, and then use that source in the WriteEvent method to write entries using resource identifiers to the event log. Creare quindi un'origine diversa senza file di risorse e usare tale origine nel WriteEntry metodo per scrivere le stringhe direttamente nel registro eventi usando tale origine.Then create a different source without resource files, and use that source in the WriteEntry method to write strings directly to the event log using that source.

Sicurezza

EventLogPermission
per la scrittura delle informazioni del registro eventi nel computer.for writing the event log information on the computer. Enumerazione associata:WriteAssociated enumeration: Write

Vedi anche

Si applica a