log4j: Protokolliert die Ausgabe einer bestimmten Klasse an einen bestimmten Appender
161
Ich verwende log4j und möchte die Ausgabe bestimmter Logger an bestimmte Dateien weiterleiten.
Ich habe bereits mehrere Appender eingerichtet. Um das Debuggen zu vereinfachen, möchte ich log4j mitteilen, dass die von einer bestimmten Klasse (z. B. foo.bar.Baz) generierte Ausgabe in eine bestimmte Protokolldatei geschrieben werden soll.
ahh - so einfach! Vielen Dank! Erzwingt die Einstellung log4j.additivity.foo.bar.Baz = false, dass die Ausgabe von Baz nicht im Appender des rootLogger angezeigt wird?
Gubrutz
3
Für welche Version von log4J ist das? Ich versuche, die XML-Konfiguration zu finden, um dasselbe für log4j Version 1.2.17
AC
1
@ RodrigoGurgel ja, nichts Ungewöhnliches dort
Maurice Perry
4
@dwjohnston Wenn Sie die Additivität auf false setzen, wird verhindert, dass sich der Logger bei den Appendern seiner Vorfahren anmeldet (standardmäßig true). Wäre die Additivität auf true belassen worden, hätte die Protokollierung beim Baz-Appender in beide Dateien geschrieben.
Maurice Perry
1
Irgendwelche Gedanken zur XML-Konfiguration?
Igor Donin
21
Hier ist eine Antwort bezüglich der XML-Konfiguration. Beachten Sie, dass, wenn Sie dem Datei-Appender keine geben, eine ConversionPattern0-Byte-Datei erstellt und nichts geschrieben wird:
Hier ist eine Antwort bezüglich der XML-Konfiguration. Beachten Sie, dass, wenn Sie dem Datei-Appender keine geben, eine
ConversionPattern
0-Byte-Datei erstellt und nichts geschrieben wird:quelle
<appender-ref ref="bdfile"/>
aus zu entfernen.<root>
Andernfalls wird auch Ihr gesamtes Protokoll in diese Datei kopiert.<logger>...
Element. Geben Sie die Klasse oder das Paket als Namen und den Appender als Datei-Appender an.