Blogia
JavaForDummies

Uso de Log4J

Como base en el ejemplo de JUnit, vamos a ver una forma muy pero muy (pero muy) simple de la utilizacion de esta librería, enviando a un file los resultados de la ejecucion de los metodos de testeo de la clase Math.

La libreria se divide principalmente en 3 clases Logger, de donde obtenemos el objeto que generará los mensajes, Appender quien recibe los mensajes del Logger y los envia a donde le digamos (archivo, consola, mail, base de datos) y Layout donde configuramos el formato visual que tendrán nuestros mensajes.

La clase Logger dispone de varios niveles de prioridad, de menor a mayor:

log.trace("un mensaje");
log.debug("un mensaje");
log.info("un mensaje");
log.warn("un mensaje");
log.error("un mensaje");
log.fatal("un mensaje");

A continuacion el codigo de la clase TestMath modificado solo el 1er metodo:
import junit.framework.TestCase;
import org.apache.log4j.*;

public class TestMath extends TestCase { 

static Logger log = Logger.getLogger(TestMath.class);

log.setLevel(Level.INFO); //seteamos el nivel minimo de prioridad de //mensajes

//por debajo de este nivel, no nos llegaran mensajes de logs.

//lo que hacemos luego es crear un objeto Appender, que es el que nos envia

//los logs a donde nosotros le especifiquemos

SimpleLayout miLayout = new SimpleLayout(); //el layout es el formato en...

//...el que se mostraran nuestros mensajes log.

Appender miAppender = new FileAppender(miLayout); //los logs seran enviados //a un File...

log.setAppender(miAppender); //asignamos el appender al log.

protected void setUp() { // put common setup code in here   }     

protected void tearDown() { // put common cleanup code in here  }

public void testAdd() {      

int num1 = 3;

int num2 = 2;      

int total = 5;      

int sum = 0;      

sum = Math.add(num1, num2);      

assertEquals(sum, total); 

log.info("El valor de la suma es: " + total);

log.info("El valor obtenido es: " + sum); 

}    

public void testMulitply() {

...

}

public void testDivision() {

...

}

}

En forma muy básica este es el uso de la librería Log4J. Que conste que en aplicaciones empresariales de mayor nivel, todo se configura a través de .properties o archivos XML, tanto los layouts como la salida de los logs (consola, archivos, email, o incluso una base de datos).

Mas info:

http://www.developer.com/open/article.php/3097221/Logging-with-log4jmdashAn-Efficient-Way-to-Log-Java-Applications.htm (el mejor, en INGLÉS)

http://www.apuntesdejava.com/2006/02/log4j.html (el mas completo, pero de mayor complejidad)

http://chuwiki.chuidiang.org/index.php?title=Ejemplo_con_log4j (muy bueno tambien)

http://es.wikipedia.org/wiki/Log4j

0 comentarios