2010-01-28 10 views
44

Est-il possible de configurer différents niveaux de consignation pour un seul enregistreur basé sur l'appender? Je me rends compte que c'est similaire à question, et c'est aussi loin que je l'avais déjà moi-même, mais le problème est que le seuil s'applique à tous les loggers qui se connectent à cet appender, alors que je veux seulement le seuil appliquer à un seul enregistreur.Niveau de consignation par appender pour un enregistreur unique

-à-dire Jusqu'à présent, je quelque chose comme ceci:

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 

Je veux myLogger messages DEBUG à envoyer au logfile appender, mais je veux aussi myLogger messages INFO à envoyer à le stdout appender (mais pour tous les autres enregistreurs seulement AVERTISSEMENTS). L'utilisation du seuil pour limiter la sortie standard à WARN limite la sortie de mylogger.

Répondre

46

Aha, je l'ai fixé en changeant

log4j.appender.stdout.Threshold=WARN 

à

log4j.appender.stdout.Threshold=INFO 

Aurait dû être premier tour de temps plus prudent.

+9

Je recommande d'utiliser le format XML, il est considérablement plus facile à comprendre, IMO – skaffman

+0

convenu, et il expose des fonctionnalités qui ne sont pas disponibles dans les fichiers de propriétés. – Joel

+0

Bien! Cela m'a été très utile un an plus tard: -D je l'ai fait à l'exécution, depuis l'application, comme ceci: myAppender.setThreshold (Level.INFO). – Jochem

Questions connexes