我的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'
运行我的单元测试时,将显示以下日志。
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)
我正在使用springboot 2.0.4.RELEASE。我希望这只是某种版本不匹配的问题。任何见解都表示赞赏。
错误: java.lang.NoClassDefFoundError: org/apache/logging/log4j/util/ReflectionUtil
java.lang.NoClassDefFoundError: org/apache/logging/log4j/util/ReflectionUtil
这是因为从版本2.9.0起的log4j2已从api jar(log4j-api-2.xxjar)中删除了该类。
拥有它的最新版本是2.8.2
可能您在类路径中有混合版本。