Tutorial
Tratamiento del log
06/02/2007

Codigo interesante para manejar el log de OpenCms.

Código:
Para trabajar con log4j lo que se necesita es el jar y un fichero de properties que tienes que meterlo en \WEB-INF\classes\ de tu webapp. Opencms tiene uno predefinido para sus clases.
Si nos fijamos dentro tenemos algo como esto:
log4j.appender.CONSOLE=org.apache.log4j.ConsoleAppender --> es la definición del log a consola

log4j.appender.OC=org.apache.log4j.RollingFileAppender--> es la definicion del log a fichero

la explicación va sobre este último que es más funcional que el de consola.

Una vez que se define el appender a file, se define el file
log4j.appender.OC.File=path_nombre_fichero.log
log4j.appender.OC.MaxFileSize=2mb --> tamaño maximo del fichero en disco
log4j.appender.OC.MaxBackupIndex=5 --> nº máximo de logs guardados en disco

log4j.appender.OC.layout=org.apache.log4j.PatternLayout
log4j.appender.OC.layout.ConversionPattern=%d{DATE} %5p [%30.30C:%4L] %m%n --> Definicion de como se guardan los ficheros con tamaño superior a 2mb

Y ahora lo mas interesante que es definir los niveles de log y donde quieres que tengan efecto

log4j.logger.org.opencms.monitor=INFO
log4j.logger.org.opencms.staticexport=WARN
log4j.logger.com.opencms=ERROR
log4j.org.opencms.file=DEBUG

Los niveles que existen o por lo menos los que utilizo son INFO-WARN-DEBUG-ERROR.
Si te fijas despues de log4j.logger. vienen las clases donde se utiliza el log4j. Así el info es mostrado en las clases que se encuentran en y debajo del paquete org.opencms.monitor.

Creo que quedo mas o menos claro no? el log4j tambien se puede utilizar el formato xml como el siguiente fichero log4j.xml

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">

<log4j:configuration xmlns:log4j=" http://jakarta.apache.org/log4j/">

<appender name="CATALINA" class="org.apache.log4j.RollingFileAppender">
<param name="File" value="${catalina.home}/logs/catalina.log"/>
<param name="Append" value="true"/>
<param name="MaxFileSize" value="5000KB"/>
<param name="MaxBackupIndex" value="2"/>
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern" value="%d %-5p [%c] %m%n"/>
</layout>
</appender>
<category name="org.apache.catalina.ContainerBase.[Catalina].[localhost].[/manager]" additivity="true">
<priority value="debug"/>
<appender-ref ref="CATALINA"/>
</category>
<root>
<priority value="debug"/>
<appender-ref ref="DEFAULT"/>
</root>

</log4j:configuration>

Jnovo