Nous utilisons slf4j + logback, et il se trouve que certaines bibliothèques tierces utilisent la journalisation des communs. Comment le configurer pour utiliser la déconnexion?
La réponse est de ne pas utiliser commons-logging.jar, car SLF4J a été conçu pour faire ce que commons-logging fait mais mieux. Comme @MahdeTo le fait référence, vous devez utiliser jcl-over-slf4j.jar.
Consultez la documentation du site Web slf4j sur la migration de commons-logging .
Je tombe aussi sur cette question et j'ai découvert jcl-over-slf4j.jar
en effet peut résoudre le problème, je ne pouvais pas comprendre pourquoi commons-logging
ne pouvait pas utiliser logback
automatiquement, car commons-logging
est l'interface du journal et logback
est l'implémentation, ils devraient s'intégrer automatiquement, jusqu'à ce que je trouve this :
L'Apache Commons Logging (JCL) fournit une interface Log qui est conçue pour être à la fois légère et une abstraction indépendante d'autres boîtes à outils de journalisation. Il fournit au développeur de middleware/outillage une abstraction de journalisation simple, qui permet à l'utilisateur (développeur d'application) de connecter une implémentation de journalisation spécifique.
JCL fournit des implémentations de journaux à enveloppe mince pour d'autres outils de journalisation, notamment Log4J, Avalon LogKit (l'infrastructure de journalisation d'Avalon Framework), JDK 1.4 et une implémentation d'API de journalisation JDK 1.4 (JSR-47) pour les systèmes antérieurs à 1.4. L'interface est étroitement liée à Log4J et LogKit.
Évidemment, toutes les interfaces de journalisation ne peuvent pas bien s'intégrer à l'implémentation des journaux, ce qui signifie que si vous voulez vraiment utiliser logback
, jcl-over-slf4j.jar
est votre seule solution maintenant parce que JCL
ne supporte que Log4J, Logkit, JDK 1.4
.
Ajoutez simplement jcl-over-slf4j
aux dépendances de votre projet (vérifiez la version actuelle sur https://search.maven.org/search?q=g:org.slf4j%20AND%20a:jcl-over-slf4j&core=gav =)
pour tous ceux qui veulent garder la taille finale de l'emballage plus petite; check-out mvn dependency:tree
résultat de votre projet et, le cas échéant, dépendance à commons-logging
existe, excluez-les également. Depuis le jcl-over-slf4j.jar
contient à la fois les classes Log et LogFactory avec exactement la même structure de paquet, ces pots de journalisation des communs seront supplémentaires sur votre paquet final.