log4j rootlogger für einige Klassen Logger ausschalten
Frage
Wie kann ich konfigurieren, dass ein log4j.properties mit einem rootlogger = debug, stdout, logfile
und org.apache.httpclient = debug
, die in das Logfile geht aber nicht die stdout?
Erhöhung des rootlogger an info ist nicht akzeptabel, da ich anderes Paket an den Debug-Level habe.
Lösung
In der log4j.properties
Datei, fügen Sie die Zeile
log4j.logger.org.apache.httpclient=DEBUG, logfile
die org.apache.httpclient
Logger Ausgabe an den logfile
appender zu lenken.
Auch sind die Zeilen
log4j.additivity.org.apache.httpclient=false
die org.apache.httpclient
Logger Ausgabe auf die Appen des rootLogger
gehen zu verhindern.
Andere Tipps
Ihr könnte diese Funktionalität erreichen durch Filter auf den verschiedenen Appen verwenden. Ich denke, die LevelRangeFilter wäre was Sie suchen.
Aber ich denke, Filter können nur angegeben werden, wenn Sie eine XML-Datei für die Konfiguration verwenden und werden nicht unterstützt, wenn eine .properties-Datei.