martes, 3 de julio de 2007

Trazas en Java utilizando "Log For Java" (log4j)

Este post es un esbozo


La librería Log4j nos permite crear fácilmente trazas en nuestro código. Simplifica el proceso al límite, únicamente utilizaremos una clase, y será la librería la que se ocupe de trazar en consola o fichero.Las carácterísticas principales son:

  • Trazas en consola y/o fichero

  • Diferentes niveles de trazas (ERROR, DEBUG, INFO, WARN...)

  • Mensajes con información de contexto: clase que produce la traza, hora, etc.

  • Fichero de configuración sencillo donde se especifica la salida de la traza, mensajes, etc.


Ejemplo para trazar el comportamiento de una clase:

public class MiClase1{
static Logger trazas = Logger.getLogger(MiClase.class);
void miFuncion(){
try{
/* ... */
//genera una traza de debugtrazas.debug("Acabo de pasar un bucle");
/* ... */
//genera una traza de informacióntrazas.debug("Inserción correcta en base de datos");
/* ... */
}catch(Exception e){
//genera una traza de errortrazas.error("Ha habido un problema al hacer...",e);
}
}
}

Para especificar la salida de las trazas se utiliza el fichero log4j.properties.Ejemplo del fichero de configuración:

## Establecemos por defecto el nivel de log en 'warning'##
log4j.rootLogger=WARN
## Definición de los appenders ### >> a consola
log4j.appender.consola=org.apache.log4j.ConsoleAppender
log4j.appender.consola.layout=org.apache.log4j.PatternLayout
log4j.appender.consola.layout.ConversionPattern= [%t] %d %-5p %c - %m%n
# >> a fichero
log4j.appender.fichero=org.apache.log4j.FileAppender
log4j.appender.fichero.file=c:\trazas.loglog4j.appender.fichero.append=true
log4j.appender.fichero.layout=org.apache.log4j.PatternLayout
log4j.appender.fichero.layout.ConversionPattern= [%t] %d %-5p %c - %m%n
## Decimos donde queremos que vaya el log de cada clase y su nivel ##
log4j.logger.mipaquete.MiClase1=DEBUG,consola
log4j.logger.mipaquete.MiClase2=DEBUG,fichero

Más Info
Chuidiang.com : Separar el log en varios ficheros
Manual de Log4J por Mauricio SantaCruz

No hay comentarios:

Publicar un comentario