La mayoría de las veces el registro de errores suele llevarse a cabo guardando en un fichero de texto el mensaje de la excepción junto con las traza y la hora a la que se ha producido. También podemos incluir más información sobre el sistema operativo del equipo, versión del programa... En otros casos se opta por mandar un correo electrónico con la información del excepción o incluso podemos optar por hacer combinaciones de ambas, guardar la información en un fichero de texto y mandarlo por correo electrónico.
Escribir el código que realice las tareas anteriormente comentadas no es muy complicado pero implica gastar un número de horas y de recursos que en la mayoría de los proyectos no es posible. Por eso, a veces tenemos que buscar soluciones rápidas de implantar y si están ampliamente probadas mejor que mejor. En el peor de los caso solo tendremos que invertir un par de horas en leer la documentación para saber como utilizarla y a partir de ahí tan sólo haremos un copy & paste en todos nuestros proyectos.
Para empezar diré que la librería log4net es una herramienta que ayuda a registrar salidas en una amplia variedad de destinos. Esta librería es una migración de la librería log4j (log for java) y que también podemos encontrar para otros lenguajes como c++ o php.
Lo primero que debemos hacer para usar esta librería (después de leernos aunque sea por encima la documentación) es descargarla de la página oficial o través de nuget. Una vez descargada y añadida la referencia a nuestro proyecto debemos modificar nuestro fichero de configuración (app.config o web.config) añadiendo en la <configuration><configSections> lo siguiente
Luego, crearemos la sección log4net donde añadiremos el tipo de logger que vamos a usar, y que tipo de salida (appender) usaremos. En mi caso usaré como salida el Sql Server, así que añadiremos lo siguiente a nuestro fichero de configuración
También debemos ejecutar el siguiente script sql en nuestra base de datos para almacenar los datos que queramos registrar.
CREATE TABLE [dbo].[Log] ( [Id] [int] IDENTITY (1, 1) NOT NULL, [Date] [datetime] NOT NULL, [Thread] [varchar] (255) NOT NULL, [Level] [varchar] (50) NOT NULL, [Logger] [varchar] (255) NOT NULL, [Message] [varchar] (4000) NOT NULL, [Exception] [varchar] (2000) NULL )
Llegados a este punto ya solo nos queda añadir un par de lineas a nuestro código y ya tendremos nuestro logger funcionando.
try { // ... código a trazar ... } catch (Exception ex) { // Creamos nuestro logger ILogger logger = LogManager.GetLogger("Logger"); // Cargamos la configuración XmlConfigurator.Configure(); // Registramos nuestra excepción Logger.Error(ex.Message, ex); }
Con poco esfuerzo y aprovechando un proyecto que funciona podemos trazar nuestras aplicaciones sin el mayor esfuerzo haciendo nuestras aplicaciones más robustas ya que podremos localizar más fácilmente nuestros puntos débiles y podremos corregirlos.
Como es de suponer log4net dispone de fábrica más appenders como por ejemplo
- Log4net.Appender.AdoNetAppender
- Log4net.Appender.AnsiColorTerminalAppender
- Log4net.Appender.AspNetTraceAppender
- Log4net.Appender.ColoredConsoleAppender
- log4net.Appender.ConsoleAppender
- log4net.Appender.DebugAppender
- log4net.Appender.EventLogAppender
- log4net.Appender.FileAppender
- log4net.Appender.LocalSyslogAppender
- log4net.Appender.MemoryAppender
- log4net.Appender.NetSendAppender
- log4net.Appender.OutputDebugStringAppender
- log4net.Appender.RemoteSyslogAppender
- log4net.Appender.RemotingAppender
- log4net.Appender.RollingFileAppender
- log4net.Appender.SmtpAppender
- log4net.Appender.SmtpPickupDirAppender
- log4net.Appender.TelnetAppender
- log4net.Appender.TraceAppender
- log4net.Appender.UdpAppender
Todos ellos listo para utilizar con muy poco esfuerzo. Para saber como usar estos appenders y como se pueden configurar recomiendo revisar la documentación oficial.
Happy coding!
Mas info | log4net
No hay comentarios:
Publicar un comentario