Sto provando a usare SLF4J (con log4j
associazione) per la prima volta.
Vorrei configurare 3 Logger con nome diverso che possono essere restituiti da una LoggerFactory che registrerà livelli diversi e invierà i messaggi a diversi appendici:
- Logger 1 "FileLogger" registra DEBUG e si aggiunge a
DailyRollingFileAppender
- Logger 2 "TracingLogger" registra TRACE + e si aggiunge a
JmsAppender
- Logger 3 "ErrorLogger" registra ERROR + e si aggiunge a un altro
JmsAppender
Inoltre li voglio configurati programmaticamente (in Java, al contrario di XML o di un log4j.properties
file).
Immagino che, normalmente, li definirei Logger
da qualche parte in un codice di bootstrap, come un init()
metodo. Tuttavia, poiché desidero utilizzarlo slf4j-log4j
, sono confuso su dove poter definire i logger e renderli disponibili per il percorso di classe.
Non credo che questa sia una violazione dello scopo sottostante di SLF4J (come facciata), perché il mio codice che utilizza l'API SLF4J non saprà mai che esistono questi logger. Il mio codice effettua semplicemente chiamate normali all'API SLF4J, che poi le inoltra ai logger log4j che trova sul percorso di classe.
Ma come faccio a configurare quei logger log4j sul percorso di classe ... in Java ?!