3 de marzo de 2014

Log4j

Log4j es una libreria Java (algunos dicen Framework) que permite registrar (log) mensajes que se registran en un aplicativo.

Los mensajes tiene varios niveles de registro:
  • trace : maximo nivel de detalle, cualquier mensaje
  • debug :  para mensajes de depuracion
  • info : mensajes informativos
  • warn : mesajes de alerta por posibles problemas
  • error : errores en el aplicativo
  • fatal  : es igual que error, pero cuando el aplicativo ya no funciona mas.
Hay dos niveles que son para controlar la salida:
  •  off : para no mostrar lo mensajes.
  • all: mostrar todo los mensajes.
Ejemplo basico de uso y  configuracion:
+ + +
package org.andrexweb.logger; 

import org.apache.log4j.Logger; 

/**
 * Hello world!
 *
 */ 
public class App {
private static Logger LOGGER = Logger.getLogger(App.class);

public static void main( String[] args ) {
LOGGER.trace( "Hello World!" ); 
}
+ + +




Salida del programa:

2014-03-03 19:10:30 (App.java:14) TRACE Hello World!

Para configurar el log4j se requiere un archivo log4j.properties o log4j.xml, de ejemplo se usara el xml:

+ + +
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">
<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/" debug="false">
  
    <!-- Appenders -->
    <appender name="console" class="org.apache.log4j.ConsoleAppender">
        <param name="Target" value="System.out" />
        <layout class="org.apache.log4j.PatternLayout">
            <param name="ConversionPattern" value="%d{yyyy-MM-dd HH:mm:ss} (%F:%L) %-5p %m%n"/>
        </layout>
    </appender>

    <!-- Loggers -->      
    <logger name="org">
        <level value="all" />
    </logger>
   
    <!-- Root Logger -->
    <root>
        <priority value="error" />
        <appender-ref ref="console" />
    </root>

</log4j:configuration>

+ + +

En el archivo se tiene tres secciones:
  • Appenders : Son las salidas por donde se quiere mostrar el log. 
  • Loggers : Es donde se definen las clases y a que nivel de detalle se mostrar el log.
  • Root Logger : Es donde se configurar los diferentes Appenders.

En la seccion de Appenders, es donde se puede configurar la salida, para el ejemplo es la consola, pero se puede especificar otros tipos, como un archivo, una base de datos, email o crear su propio Appender para algun tipo registro de log propietario. Y en esta misma seccion se configura el patron (PatternLayout) de como de va mostrar el mensaje (log).

Ejemplo de appender de rotacion diaria de log:
+ + +
<appender name="dailyRollingFileAppender" class="org.apache.log4j.DailyRollingFileAppender">
        <param name="File" value="app.log" />
        <param name="Append" value="true" />
        <param name="DatePattern" value="'.'yyyy-MM-dd" />
        <layout class="org.apache.log4j.PatternLayout">
            <param name="ConversionPattern" value="%d{yyyy-MM-dd HH:mm:ss} (%F:%L) %-5p %m%n"/>
        </layout>
    </appender>

+ + +

Y por ultimo, donde se pone el archivo log4j.xml, este va en la la raiz de los paquetes, ya que log4j, busca el archivo de configuracion con el primer uso.

Bibliografia:
Log4J
Wikipedia

La descripcion y ejemplo aplican para el version Log4j-1.2.X.

No hay comentarios:

Publicar un comentario