J'essaie d'utiliser SLF4J (avec log4j
) pour la première fois.
J'aimerais configurer trois enregistreurs nommés différents qui peuvent être renvoyés par un LoggerFactory, qui enregistrent différents niveaux et envoient les messages à différents appenders :
- Logger 1 "FileLogger" enregistre DEBUG et s'ajoute à
DailyRollingFileAppender
- Le logger 2 "TracingLogger" enregistre TRACE+ et l'ajoute à un fichier de type
JmsAppender
- Le logger 3 "ErrorLogger" enregistre ERROR+ et l'ajoute à un autre logger.
JmsAppender
En outre, je souhaite qu'ils soient configurés de manière programmatique (en Java, par opposition à XML ou à un fichier de type log4j.properties
).
J'imagine qu'en temps normal, je définirais ceux-ci Logger
s quelque part dans un code d'amorçage, comme une init()
méthode. Cependant, comme je veux utiliser slf4j-log4j
Je ne sais pas où je pourrais définir les enregistreurs et les rendre disponibles dans le classpath.
Je ne sais pas. croire il s'agit d'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 loggers existent. Mon code fait simplement des appels normaux à l'API SLF4J, qui les transmet ensuite aux loggers log4j qu'il trouve dans le classpath.
Mais comment configurer ces loggers log4j sur le classpath...en Java !
0 votes
stackoverflow.com/questions/1666121/
4 votes
Pour log4j 1.x utilisez la réponse acceptée ci-dessous pour 2.x voir logging.apache.org/log4j/2.x/manual/customconfig.html