log4j rootlogger désactive le logger pour certaines classes
Question
comment puis-je configurer un log4j.properties avec un rootlogger = debug, stdout, logfile
et org.apache.httpclient = debug
qui entre dans le fichier journal mais pas dans la sortie standard?
élever le rootlogger en info n’est pas acceptable car j’ai d’autres paquets au niveau du débogage.
La solution
Dans le fichier log4j.properties
, ajoutez la ligne
log4j.logger.org.apache.httpclient=DEBUG, logfile
pour diriger la sortie de l'enregistreur org.apache.httpclient
vers l'appendeur logfile
.
Incluez également la ligne
log4j.additivity.org.apache.httpclient=false
pour empêcher la sortie de l'enregistreur org.apache.httpclient
en direction des appenders de rootLogger
.
Autres conseils
Vous pourriez obtenir cette fonctionnalité en utilisant des filtres sur les différents ajouts. Je pense que le LevelRangeFilter serait ce que vous recherchez.
Cependant, je pense que les filtres ne peuvent être spécifiés que si vous utilisez un fichier xml pour la configuration et ne sont pas pris en charge lors de l'utilisation d'un fichier .properties.