Gibt es eine Möglichkeit, log4j so zu konfigurieren, dass unterschiedliche Protokollierungsstufen an verschiedene Appender ausgegeben werden?
Ich versuche, mehrere Protokolldateien einzurichten. Die Hauptprotokolldatei würde alle INFO-Nachrichten und höher für alle Klassen abfangen. (In der Entwicklung werden alle DEBUG-Nachrichten und höher sowie TRACE für bestimmte Klassen abgefangen.)
Dann hätte ich gerne eine separate Protokolldatei. Diese Protokolldatei fängt alle DEBUG-Nachrichten für eine bestimmte Teilmenge von Klassen ab und ignoriert alle Nachrichten für jede andere Klasse.
Gibt es eine Möglichkeit, das zu bekommen, wonach ich suche?
Danke, Dan
Antworten:
Dies sollte Ihnen den Einstieg erleichtern:
quelle
Vielleicht so etwas?
Daher werden alle Infomeldungen in server.log geschrieben. Im Gegensatz dazu enthält foo.log nur Nachrichten von com.example.foo, einschließlich Nachrichten auf Debug-Ebene.
quelle
Ich hatte diese Frage, aber mit einer Wendung - ich habe versucht, verschiedene Inhalte in verschiedenen Dateien zu protokollieren. Ich hatte Informationen für ein LowLevel-Debug-Protokoll und ein HighLevel-Benutzerprotokoll. Ich wollte, dass der LowLevel nur zu einer Datei und der HighLevel sowohl zu einer Datei als auch zu einem Syslogd wechselt.
Meine Lösung bestand darin, die 3 Appender zu konfigurieren und dann die Protokollierung wie folgt einzurichten:
Der Teil, der für mich schwer herauszufinden war, war, dass im 'log4j.logger' mehrere Appender aufgelistet sein könnten. Ich habe versucht, es Zeile für Zeile zu tun.
Hoffe das hilft irgendwann jemandem!
quelle
Richten Sie für die Hauptprotokolldatei / den Haupt-Appender eine ein
.Threshold = INFO
, um die tatsächlich im Appender protokollierte Datei auf INFO und höher zu beschränken, unabhängig davon, ob für die Protokollierer DEBUG, TRACE usw. aktiviert ist oder nicht.Was das Fangen von DEBUG und nichts darüber angeht ... müssten Sie wahrscheinlich einen benutzerdefinierten Appender schreiben.
Ich würde jedoch empfehlen, dies nicht zu tun, da dies die Fehlerbehebung und Analyse ziemlich schwierig machen würde:
quelle
Demo-Link: https://github.com/RazvanSebastian/spring_multiple_log_files_demo.git
Meine Lösung basiert auf der XML-Konfiguration mit
spring-boot-starter-log4j
. Das Beispiel ist ein grundlegendes Beispiel für die Verwendungspring-boot-starter
und die beiden Logger schreiben in verschiedene Protokolldateien.quelle