J'essaye d'utiliser SLF4J (avec log4j
liaison) pour la première fois.
Je voudrais configurer 3 enregistreurs nommés différents qui peuvent être retournés par un LoggerFactory qui enregistrera différents niveaux et enverra les messages à différents appenders:
- Logger 1 "FileLogger" enregistre DEBUG et ajoute à
DailyRollingFileAppender
- Logger 2 "TracingLogger" enregistre TRACE + et ajoute à un
JmsAppender
- Logger 3 "ErrorLogger" enregistre ERROR + et ajoute à un autre
JmsAppender
De plus, je veux qu'ils soient configurés par programme (en Java, par opposition à XML ou à un log4j.properties
fichier).
J'imagine que, normalement, je définirais ces Logger
s quelque part dans un code d'amorçage, comme une init()
méthode. Cependant, parce que je veux utiliser slf4j-log4j
, je ne sais pas où je pourrais définir les enregistreurs et les rendre disponibles au chemin de classe.
Je ne pense pas que ce soit une violation de l'objectif sous-jacent de SLF4J (en tant que façade), car mon code utilisant l'API SLF4J ne saura jamais que ces enregistreurs existent. Mon code fait juste des appels normaux à l'API SLF4J, qui les transmet ensuite aux enregistreurs log4j qu'il trouve sur le chemin de classe.
Mais comment configurer ces Log4j Loggers sur le chemin de classe ... en Java?!