2010-01-28 15 views
44

¿Es posible configurar diferentes niveles de registro para un solo registrador basado en el appender?Nivel de registro por appender para un solo registrador

Me doy cuenta de que esto es similar a este question, y esto es lo que yo ya había conseguido, pero el problema es que el umbral se aplica a todos los registradores que se conectan a ese appender, mientras que solo quiero el umbral para aplicar a un solo registrador.

es decir, hasta ahora tengo algo como esto:

log4j.rootLogger=WARN, stdout 

log4j.appender.stdout=org.apache.log4j.ConsoleAppender 
log4j.appender.stdout.Threshold=WARN 
log4j.appender.stdout.layout=org.apache.log4j.SimpleLayout 

log4j.logger.mylogger=DEBUG,logfile 
log4j.appender.logfile=org.apache.log4j.DailyRollingFileAppender 
log4j.appender.logfile.DatePattern=${roll.pattern.daily} 
log4j.appender.logfile.layout=org.apache.log4j.PatternLayout 
log4j.appender.logfile.layout.ConversionPattern=%d{${datestamp}} [%t] %-5p %C{2} - %m%n 
log4j.appender.logfile.File=mylogfile.log 

Quiero myLogger mensajes de depuración que se envían a la archivo de registro appender, pero también quiero myLogger mensajes de información que se enviarán a el stdout appender (pero para todos los demás madereros solo WARN ings). El uso del Umbral para limitar la salida estándar a WARN restringe la salida de mylogger.

Respuesta

46

Aha, que fija cambiando

log4j.appender.stdout.Threshold=WARN 

a

log4j.appender.stdout.Threshold=INFO 

Debería haber sido más cuidadoso primera vez.

+9

Recomiendo usar el formato XML, es considerablemente más fácil de entender, IMO – skaffman

+0

estuvo de acuerdo, y expone la funcionalidad que no está disponible a través de los archivos de propiedades. – Joel

+0

¡Agradable! Esto fue muy útil para mí un año después :-D Lo hice en tiempo de ejecución, desde la aplicación, así: myAppender.setThreshold (Level.INFO). – Jochem

Cuestiones relacionadas