Logging en Java con log4j

¿Qué es logging en una aplicación Java?

Insertar líneas de logeo dentro de tu código es un método arcaico para depurarlo. Esta podría ser además la única manera de hacerlo porque los debuggers no siempre están disponibles o son aplicables en el contexto. Este es frecuentemente el caso para las aplicaciones distribuídas.

Por otra parte, algunas personas afirman que las líneas de logeo contaminan el código fuente y disminuyen la legilibilidad. (Nosotros creemos que lo contrario es cierto). En el lenguaje Java en el cual no hay un preprocesador disponible, las líneas de logeo incrementan el tamaño del código y reducen la velocidad, incluso cuando el logeo esta desactivado. Dado que una aplicación de tamaño considerable puede contener miles de líneas de logeo, la velocidad es de particular importancia.

Con log4j es posible activar el logeo en tiempo de ejecución sin modificar la aplicación en binario (Esto es, compilada). El paquete log4j esta diseñado para que éstas líneas puede permanecer en el código sin incurrir en un alto costo de desempeño. El comportamiento del logeo puede ser controlado editando un archivo de configuración, sin tocar nuestra aplicación compilada.

Extraído de http://logging.apache.org/log4j/1.2/index.html

Bueno, es la primer vez que utilizo este método para depurar y rastrear errores, y pues he podido notar que es una manera bastante inteligente de reemplazar nuestros clásicos

* System.out.println(…

para revisar el estado de una variable, para indicar si se ingreso a un bloque o para saber simplemente que nuestra consola funciona :). Bueno en pocas palabras el logging nos permite arrojar este tipo de mensajes en varias maneras, identicamente a nuestro método de toda la vida (System.out.println()) o a un archivo de texto u otros medios (HTML, etc).

Pondré un ejemplo, digamos que tienes una clase que estás depurando, con 2000 líneas de código, y pues a lo largo de esta tienes 40 System.out.println()

¿Sabes lo que te va a costar eliminar todas estas líneas cuando acabes el proyecto? Tú dirás, existen la búsqueda/reemplazo con expresiones regulares. Claro, pero que tal si derepente necesitas depurar tu código nuevamente, entonces tendrías que escribir nuevamente muchas líneas de código. Suficiente, no estamos dispuestos a realizar este trabajo.

Para este tipo de cosas está log4j

Con log4j puedes activar y desactivar la salida de éstas líneas desde un sencillo (no tan sencillo) archivo de configuración, quiero decir, desde este archivo de configuración decides si deseas que en tu consola salgas los mensajes, si quieres que salgan en un archivo de texto a modo de logs del sistema, en un documento de word, hasta por sms como dicen algunos por ahi.

Bueno, podría acabar de escribir este artículo con algunos ejemplos, pero que mejor que enviarlos a un artículo del ChuWiki.

http://www.chuidiang.com/chuwiki/index.php?title=Ejemplo_con_log4j

Leave a Reply

Your email address will not be published. Required fields are marked *