J'ai les dépendances suivantes dans mon fichier build.gradle.
compile 'org.slf4j:slf4j-api:1.7.25'
compile group: 'org.Apache.logging.log4j', name: 'log4j-core', version: '2.11.1'
compile group: 'org.Apache.logging.log4j', name: 'log4j-api', version: '2.11.1'
Lors de l'exécution de mes tests unitaires, les journaux suivants s'affichent.
exclude patterns:SLF4J: Class path contains multiple SLF4J bindings.
SLF4J: Found binding in
[jar:file:....gradle/caches/modules-2/files-2.1/org.Apache.logging.log4j/log4j-slf4j-impl/2.7/382b070836b8940a02d28c936974db95e9bfc3a4/log4j-slf4j-impl-2.7.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: Found binding in [jar:file:/Users/z002qz1/.gradle/caches/modules-2/files-2.1/org.Apache.logging.log4j/log4j-slf4j-impl/2.9.1/a97a849b18b3798c4af1a2ca5b10c66cef17e3a/log4j-slf4j-impl-2.9.1.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: See http://www.slf4j.org/codes.html#multiple_bindings for an explanation.
SLF4J: Actual binding is of type [org.Apache.logging.slf4j.Log4jLoggerFactory]
Java.lang.NoClassDefFoundError: org/Apache/logging/log4j/util/ReflectionUtil
at org.Apache.logging.slf4j.Log4jLoggerFactory.getContext(Log4jLoggerFactory.Java:42)
at org.Apache.logging.log4j.spi.AbstractLoggerAdapter.getLogger(AbstractLoggerAdapter.Java:46)
at org.Apache.logging.slf4j.Log4jLoggerFactory.getLogger(Log4jLoggerFactory.Java:29)
at org.slf4j.LoggerFactory.getLogger(LoggerFactory.Java:358)
J'utilise springboot 2.0.4.RELEASE. J'espère que ce n'est qu'une sorte de problème de non-correspondance de version. Toutes les idées sont appréciées.
L'erreur: Java.lang.NoClassDefFoundError: org/Apache/logging/log4j/util/ReflectionUtil
est parce que log4j2 depuis la version 2.9.0 a été supprimé cette classe du pot api (log4j-api-2.x.x.jar).
La dernière version qui en est, est 2.8.2
Vous avez probablement des versions mixtes dans le chemin de classe.
La bonne façon de configurer log4j2 dans Spring Boot est la suivante:
dependencies {
compile 'org.springframework.boot:spring-boot-starter-web'
compile 'org.springframework.boot:spring-boot-starter-log4j2'
}
configurations {
all {
exclude group: 'org.springframework.boot', module: 'spring-boot-starter-logging'
}
}
C'est expliqué dans la documentation .