Cuando uso el siguiente código para escribir en el registro de sucesos de aplicación, todo funciona bien:Escribir en el registro de eventos C# - ¿Necesito usar EventLog.CreateEventSource al escribir en el registro de la aplicación?
EventLog log = new EventLog();
log.Source = "Application";
log.WriteEntry("test message", EventLogEntryType.Error);
Cuando utilizo el código que es de MSDN y todos los otros blogs, me sale el error de seguridad (estoy adivinando porque CreateEventSource lo plantea).
string sSource = "MyWebService";
string sLog = "myApplication";
string sMsg = errorMessage;
if (!EventLog.SourceExists(sSource))
EventLog.CreateEventSource(sSource, sLog);
EventLog.WriteEntry(sSource, sMsg, EventLogEntryType.Error);
Por lo tanto, necesito para comprobar si existe o no la fuente, si todo lo que necesito es escribir en registro de la aplicación que está ahí por defecto?
¿Cuál es la forma correcta de escribir en EventViewer?
genial, gracias! Solo necesitaba confirmarlo. No necesito crear una fuente/registro por separado. De hecho, quiero escribir en el registro de la aplicación. – sarsnake
una pregunta más: cuando escribo en el origen de la Aplicación genérica, aparece el siguiente mensaje cuando lo veo en el visor de eventos: "La descripción del Evento (0) es Fuente (Aplicación) no se puede encontrar. La computadora local puede no tener la información de registro necesaria o los archivos DLL de mensajes para mostrar los mensajes de una computadora remota "... luego se muestra mi mensaje personalizado. Me preguntaba si es posible no mostrar este largo mensaje predeterminado sin configurar la fuente. – sarsnake
Es porque su computadora de monitoreo no tiene referencias a los mensajes de error, exporta el registro de eventos de la máquina remota al archivo CSV basado en texto y obtienes toda la información de una máquina remota (incluyendo errores de todas las aplicaciones que otras personas han instalado). – user3800527