2010-08-30 13 views
33

Intenté utilizar los métodos WriteEntry y WriteEvent de la clase EventLog.Diferencia entre los métodos EventLog.WriteEntry y EventLog.WriteEvent

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

Ambos producen el mismo resultado.

¿Hay alguna diferencia en el uso de estos métodos?

Si solo hay una pequeña diferencia, ¿por qué no se hizo mediante una sobrecarga de los métodos WriteEvent() o WriteEntry(), en lugar de introducir un nuevo método?

Respuesta

40

EventLog.WriteEntry es una manera "rápida y sucia" de escribir en el registro de eventos donde puede escribir una cadena. EventLog.WriteEvent le permite aprovechar al máximo la API Win32 nativa. Sin embargo, para hacer eso se supone que debes crear un archivo de mensaje localizado que luego compilas usando el message compiler (mc.exe). Cada evento puede contener cadenas de sustitución y se puede localizar para que coincida con la configuración regional de la computadora.

Para evitar este paso adicional de crear un archivo de mensaje, el contenedor .Net para la API de registro de eventos usa mensajes que simplemente insertan las cadenas suministradas como argumentos. Estos mensajes son utilizados por EventLog.WriteEntry y se almacenan como recursos integrados en EventLogMessages.dll en la carpeta .Net.

Normalmente, usar EventLog.WriteEntry es adecuado, pero si necesita localizar sus mensajes o desea mantenerlos fuera de su código fuente, debe crear un archivo de mensaje y usar EventLog.WriteEvent.

Cuestiones relacionadas