Si sta tentando di utilizzare SLF4J (con associazione log4j
) per la prima volta.Configurazione dei logger Log4j a livello di programmazione
Vorrei configurare 3 diversi logger nome che possono essere restituiti da una LoggerFactory, che registrerà diversi livelli e spingere i messaggi a diversi appenders:
- Logger 1 logs "FileLogger" Debug e aggiunge a
DailyRollingFileAppender
- Logger 2 "TracingLogger" registri di traccia + e aggiunge ad un Logger
JmsAppender
- 3 logs "ErrorLogger" ERRORE + e aggiunge a un diverso
JmsAppender
Inoltre li voglio configurati in modo programmatico (in Java, al contrario di XML o in un file log4j.properties
).
Immagino che, normalmente, definirei questi Logger
da qualche parte in un codice di avvio, come un metodo init()
. Tuttavia, poiché voglio utilizzare slf4j-log4j
, sono confuso su dove potrei definire i logger e renderli disponibili al classpath.
Io non credo questa è una violazione dello scopo sottostante di SLF4J (come facciata), perché il mio codice che utilizza l'API SLF4J non saprà mai che questi logger esistono. Il mio codice effettua solo normali chiamate all'API SLF4J, che poi li inoltra ai logger log4j che trova sul classpath.
Ma come configurare i logger log4j sul classpath ... in Java ?!
http://stackoverflow.com/questions/1666121/programmatically-creating-different -log-files-using-log4j – skaffman
Per log4j 1.x usa la risposta accettata sotto per 2.x vedi https://logging.apache.org/log4j/2.x/manual/customconfig.html – earcam