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)
0 comentarios