2010-08-30 14 views
33

Ho provato a utilizzare i metodi WriteEntry e WriteEvent della classe EventLog.Differenza tra i metodi EventLog.WriteEntry e EventLog.WriteEvent

EventLog.WriteEntry("Saravanan", "Application logs an entry", 
        EventLogEntryType.Information, 2, 3); 
EventLog.WriteEvent("Saravanan", new EventInstance(2, 3), 
           "Application logs an event"); 

Entrambi producono lo stesso risultato.

C'è qualche differenza nell'utilizzo di questi metodi?

Se ci sono solo piccole differenze, perché non è stato eseguito tramite un sovraccarico dei metodi WriteEvent() o WriteEntry(), invece di introdurre un nuovo metodo?

risposta

40

EventLog.WriteEntry è un modo "veloce e sporco" per scrivere nel registro eventi in cui è possibile scrivere una stringa. EventLog.WriteEvent consente di sfruttare appieno l'API Win32 nativa. Tuttavia, per farlo devi creare un file di messaggi localizzato da compilare usando lo message compiler (mc.exe). Ogni evento può contenere stringhe di sostituzione e può essere localizzato in modo che corrisponda alle impostazioni locali sul computer.

Per evitare questa ulteriore operazione di creazione di un file di messaggi, il wrapper .Net per l'API del registro eventi utilizza messaggi che inseriscono semplicemente le stringhe fornite come argomenti. Questi messaggi vengono utilizzati da EventLog.WriteEntry e vengono memorizzati come risorse incorporate in EventLogMessages.dll nella cartella .Net.

Normalmente l'utilizzo di EventLog.WriteEntry è adeguato, ma se è necessario localizzare i messaggi o si desidera mantenerli al di fuori del codice sorgente, è necessario creare un file di messaggi e utilizzare EventLog.WriteEvent.

Problemi correlati