14 julio 2005

log4j

He empezado a utilizar log4j.

Es una librería que permite escribir textos en pantalla, de forma similar a System.out.println(), desde un programa java. Sin embargo, va más allá. Luego, sin andar tocando por todo el código donde hemos escrito un texto, podemos hacer que determinados textos no salgan en pantalla, o que salgan por otro sitio (escribirse en una base de datos, salir en una ventana, etc).

Por ejemplo, si hacemos un algoritmo matemático en java y queremos ver resultados parciales en pantalla, podemos sacarlos usando esta librería e indicando que son de "depuración". Cuando alguna cuenta no nos cuadre, podemos sacar el texto indicando que es un "error". Podemos a la vez sacar mensajes parciales para el pintado de un gráfico, también como "depuración". Luego, al ejecutar y sin tocar código, podemos hacer que solo se vean los de "depuración", o sólo los de "error" o sólo los del algoritmo matemático, sean de "error" o de "depuración", pero no los del gráfico.

El filtrado puede ser más fino incluso. Podemos querer ver sólo los mensajes de "error" que escribe una determinada clase.

Para el uso de esta librería, además de bajarnos el jar correspondiente y añadirlo en nuestro classpath, debemos, en el main(), inicializar el "logger" con algo como esto:

PropertyConfigurator.configure ("fichero_configuracion");

Luego, en el código, para escribir mensajes, en vez de System.out.println(), escribimos cosas como esta:

Logger.getLogger(MiClase.class).debug("Esto es un mensaje de depuracion");
Logger.getLogger(OtraClase.class).error("Esto es un mensaje de errror");

El fichero de configuración que pasamos al principio es un fichero de propiedades de los de java y en él es dónde se indican qué mensajes se quieren ver: de qué clases, si los de depuración, los de error, los warning, etc.

En fin, igual de cómodo pero mucho más versátil que el System.out.println().

2 comentarios:

oscar dijo...

sabes como configurar el archivo log4j.properties para servlets y tomcat-jakarta, y tambien en el web.xml de la aplicacion, gracias.

chuidiang dijo...

Lo siento, pero estoy totalmente pez en jsp, j2ee y demás.

Se bueno.