Utiliza el registro de eventos desde tus aplicaciones

Durante el desarrollo de una aplicación, siempre debemos de ponernos en los zapatos de nuestros usarios. Algo en lo que debemos de poner especial atención es en la información que les damos cuando nuestra aplicación no funciona como esperamos. En estos casos es indispensable que proveeamos información suficiente para evitar frustración a nuestros usuarios, y facilitarnos la tarea de diagnosticar el problema.

Dentro de los recursos con los que contamos para registrar errores, uno muy útil es el Registro de Eventos, el cual es parte de Windows. Si bien la mayoría de nuestros usuarios nunca buscarán ahí información sobre su problema (por lo que es importante que les demos información más básica por otros medios), es conveniente registrar ahí información detallada y de bajo nivel que nos pueda ayudar a diagnosticar y resolver el por qué nuestra aplicación está fallando cuando otros métodos de diagnóstico (como el debuggeo) no están disponibles.

Para crear un registro requerimos de 2 cosas, un origen y un mensaje a registrar. El origen es quien genera el registro (nuestra aplicación), y su nombre debe ser lo suficientemente único como para poder identificar fácilmente a quien pertenece el mensaje. El mensaje, por su parte, aparte del texto, también contiene el tipo de evento (que va desde Información hasta Falla Fatal), y un çódigo de error.

El primer paso es registrar nuestro origen de eventos (“EventSource”). Les recuerdo que la fuente debe ser única, por lo que es importante elegir bien el nombre. Revisar si ya existe la fuente y registrarla requiere permisos de administrador, por lo que recomiendo que lo hagan durante la instalación de su aplicación:

//verificamos si el origen existe
if (!EventLog.SourceExists("Alfador.RegistroEventos"))
{        
    //si no existe, la creamos        
    EventLog.CreateEventSource("Alfador.RegistroEventos", "Aplicacion");
} 


Ya durante la ejecución de nuestra aplicación, podemos escribir al registro de eventos con el siguiente código. Nótese que el tipo de entrada (EvetLogEntryType) y el código de error dependerán del tipo de evento que estemos registrando:

string mensaje = string.Format("Registro generado por {0} a las {1}", "Demo", DateTime.Now.ToString());

//escribimos en el registro de eventos
EventLog.WriteEntry("Alfador.RegistroEventos", mensaje, EventLogEntryType.Information, 10); 

Ejecutar el código arriba mostrado resulta en el siguiente evento, el cual pueden ver usando el visor de eventos. Noten como lo que está en recuadros rojos corresponde con la información del registro que creamos.

Eventlog

Como pueden ver, es bastante sencillo lograr que sus aplicaciones usen el registro de eventos. Sí deciden usar este método de registro de erores les recomiendo que tengan una lista de cada código de error que usan, y que sean concistentes en su uso. De esta forma beneficiarán a sus usuarios (que podrían consultar la lsita de errores para entender lo que pasa) y a ustedes (es mucho más fácil cuando su usuario les dice “Error número 10” a “Mi aplicación no sirve”). 

¡Espero  les sirva!




( Country flag )
biuquote
  • Comentario
  • Vista previa
Loading