Ich versuche zum log4j
ersten Mal SLF4J (mit Bindung) zu verwenden.
Ich möchte 3 verschiedene Logger mit Namen konfigurieren, die von einer LoggerFactory zurückgegeben werden können, die verschiedene Ebenen protokolliert und die Nachrichten an verschiedene Appender weiterleitet:
- Logger 1 "FileLogger" protokolliert DEBUG und hängt an
DailyRollingFileAppender
- Logger 2 "TracingLogger" protokolliert TRACE + und hängt an a
JmsAppender
- Logger 3 "ErrorLogger" protokolliert ERROR + und hängt an einen anderen an
JmsAppender
Außerdem möchte ich, dass sie programmgesteuert konfiguriert werden (in Java im Gegensatz zu XML oder einer log4j.properties
Datei).
Ich stelle mir vor, dass ich diese Logger
s normalerweise irgendwo in einem Bootstrapping-Code definieren würde , wie bei einer init()
Methode. Da ich jedoch verwenden möchte slf4j-log4j
, bin ich verwirrt darüber, wo ich Logger definieren und sie dem Klassenpfad zur Verfügung stellen könnte.
Ich glaube nicht, dass dies eine Verletzung des zugrunde liegenden Zwecks von SLF4J (als Fassade) ist, da mein Code, der die SLF4J-API verwendet, niemals wissen wird, dass diese Logger existieren. Mein Code ruft nur normal die SLF4J-API auf, die sie dann an die log4j-Logger weiterleitet, die er im Klassenpfad findet.
Aber wie konfiguriere ich diese log4j-Logger im Klassenpfad ... in Java?!