问题:
SLF4J: Class path contains multiple SLF4J bindings.
SLF4J: Found binding in [jar:file:/D:/Maven/MavenRepository/org/slf4j/slf4j-jdk14/1.7.25/slf4j-jdk14-1.7.25.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: Found binding in [jar:file:/D:/Maven/MavenRepository/org/slf4j/slf4j-log4j12/1.7.10/slf4j-log4j12-1.7.10.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: Found binding in [jar:file:/D:/Maven/MavenRepository/org/apache/logging/log4j/log4j-slf4j-impl/2.12.1/log4j-slf4j-impl-2.12.1.jar!/org/slf4j/impl/StaticLoggerBinder.class]
即slf4j-jdk14、slf4j-log4j12、log4j-slf4j-impl之间存在日志冲突。
解决办法:
找了很多博客,一直没有解决清楚,主要原因还是因为没有弄清楚这几个jar包之间的关系,最终在这篇博客https://www.cnblogs.com/hanszhao/p/9754419.html中知道了。
我的项目中是采用SLF4J与JDK合用,需要:slfj-jdk.jar和slf4j-api.jar,其他的都不需要,在maven的依赖中删除不需要的jar包就可以了。
具体操作如下:
(我有试过在终端中输入 mvn dependency:tree ,可能是没有自己手动删除干净,最终还是没有解决,所以还是推荐以下做法)
在maven窗口中打开这个,
然后快捷键 “ctrl+F” ,再直接输入需要查找的jar包,
找到后,右键选择 “Exclude” 或者快捷键 “shift+delete”,删除该jar包即可,我删除了slf4j-log4j12和log4j-slf4j-impl