¿Cómo tener dos appenders cada uno con un nivel diferente en log4j?
En el rootLogger se define el nivel de log general para todos los appenders y en cada appender se puede indicar con la propiedad threshold el límite mínimo para el nivel de log de ese appender.
log4j.rootLogger=DEBUG, stdout, file
# ***** stdout appender para la consola
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=APL: %d{dd MMM yyyy HH:mm:ss} %-5p %c – %m%n
log4j.appender.stdout.threshold = INFO
# ***** file appender a un fichero
log4j.appender.file=org.apache.log4j.RollingFileAppender
log4j.appender.file.File=apl.log
log4j.appender.file.MaxFileSize=200KB
log4j.appender.file.MaxBackupIndex=10
log4j.appender.file.layout=org.apache.log4j.PatternLayout
log4j.appender.file.layout.ConversionPattern=APL: %d{dd MMM yyyy HH:mm:ss} %-5p %c – %m%n
Eso es todo.
Hola. Yo estoy teniendo problemas a la hora de configurar el fichero donde escribir el log.
mi fichero:
log4j.rootLogger=INFO, myConsoleAppender, Fichero
log4j.appender.myConsoleAppender=org.apache.log4j.ConsoleAppender
log4j.appender.myConsoleAppender.layout=org.apache.log4j.PatternLayout
log4j.appender.myConsoleAppender.layout.ConversionPattern=%-4r [%t] %-5p %c %x – %m%n
log4j.appender.Fichero=org.apache.log4j.RollingFileAppender
log4j.appender.Fichero.File=/logs/milog.log
log4j.appender.Fichero.layout=org.apache.log4j.PatternLayout
log4j.appender.Fichero.MaxFileSize=500KB
log4j.appender.Fichero.MaxBackupIndex=10
log4j.appender.Fichero.layout.ConversionPattern=%-4r [%t] %-5p %c %x – %m%n
Mi estructura web es algo asi
WebContent
WEB-INF
logs
En logs quiero generar mi fichero:
He probado con
WEB-INF/logs/milog.log
/logs/milog.log
./logs/milog.log
Si le pongo la ruta exacta tipo
C:/tomcat50/…./milog.log
funciona perfectamente, con lo que creo que el resto del código esta bien.
Alguna sugerencia por favor, no se me ocurre que mas hacer.
Gracias.
David.
Comentario por David — 15 de abril de 2010 @ 10:40 pm |
Hola David,
Dos cosas:
Las rutas de ficheros relativas como has descubierto son un problema
Usar WEB-INF/logs como directorio de log tampoco es recomendable
1. Rutas relativas
Supongamos que configuras log4j.appender.Fichero.File=logs/milog.log
La ruta real depende de como hayas arrancado el servidor:
Como un servicio : La ruta será algo como C:/windows/System32/logs/milog.log
Con startup.bat : La ruta será algo como C:/tomcat50/bin/logs/milog.log
También tienes que tener en cuenta que según el servidor de aplicaciones y la manera de arrancarlo, las rutas pueden ser muy diferentes.
2. Usar WEB-INF como direcotio para los logs
Ten en cuenta que tu aplicación y sus logs son dos cosas diferentes y deberían estar separadas.
Imagina que un día tienes que instalar esa misma aplicación en otro sitio para otro cliente, en ese caso tendrías que borrar los logs.
Comentario por jansoblog — 22 de abril de 2010 @ 5:36 pm |