Running com.cn.ld.modules.jms.JmsTest
SLF4J: Class path contains multiple SLF4J bindings.
SLF4J: Found binding in [jar:file:/F:/my_repository/org/slf4j/slf4j-log4j12/1.6.1/slf4j-log4j12-1.6.1.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: Found binding in [jar:file:/F:/my_repository/org/slf4j/slf4j-nop/1.6.1/slf4j-nop-1.6.1.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: See http://www.slf4j.org/codes.html#multiple_bindings for an explanation.
Tests run: 1, Failures: 0, Errors: 1, Skipped: 0, Time elapsed: 0.105 sec <<< FAILURE!
是因为在1.6.1版本 slf4j-log4j12 和 slf4j-nop-1.6.1.jar 包含相同的StaticLoggerBinder.class
于是删除slf4j-nop-1.6.1.jar,但是mvn test 提示NoSuchMethodError错误:
-------------------------------------------------------------------------------
Test set: com.cn.ld.modules.jms.JmsTest
-------------------------------------------------------------------------------
Tests run: 1, Failures: 0, Errors: 1, Skipped: 0, Time elapsed: 0.111 sec <<< FAILURE!
initializationError(com.cn.ld.modules.jms.JmsTest) Time elapsed: 0 sec <<< ERROR!
java.lang.NoSuchMethodError: org.slf4j.spi.LocationAwareLogger.log(Lorg/slf4j/Marker;Ljava/lang/String;ILjava/lang/String;Ljava/lang/Throwable;)V
slf4j-api 中 LocationAwareLogger 接口中方法
public abstract void log(Marker marker, String s, int i, String s1,
Object aobj[], Throwable throwable);
对应的字节码为:
public abstract log(Lorg/slf4j/Marker;Ljava/lang/String;ILjava/lang/String;[Ljava/lang/Object;Ljava/lang/Throwable;)V
添加jcl-over-slf4j 后,测试顺利通过,但是未发现jcl-over-slf4j 有对应的实现方法。
后续解惑.....
分享到:
相关推荐
这个jar包是SLF4J的核心组件,用于在应用程序中引入日志功能。 **SLF4J的基本概念:** 1. **API接口**:SLF4J提供了统一的日志API,定义了各种日志级别(TRACE, DEBUG, INFO, WARN, ERROR, OFF)以及相关的方法,如...
3. 确认SLF4J的jar包已添加到项目的类路径中。 4. 如果有多个SLF4J实现(如logback、log4j等)存在,可能会出现“SLF4J: Class path contains multiple SLF4J bindings”警告,需要清理掉多余的实现。 5. 验证Maven...
9. **不同版本的jar包**:可能包含不同版本的SLF4J及其绑定库,用于兼容不同版本的应用或解决版本冲突问题。 在使用这些jar包时,通常只需要slf4j-api.jar和一个绑定库(如slf4j-log4j12.jar)。其他jar包可以根据...
在"slf4j所需要的全部jar包"中,通常包括以下组件: 1. `slf4j-api.jar`:这是SLF4J的核心API,包含了所有用于日志记录的接口和辅助类。开发人员需要在项目中引入此库来使用SLF4J。 2. `logback-classic.jar`:...
要实现这种结合,需要在项目中同时引入Slf4j的API jar包(slf4j-api.jar)和Log4j的实现jar包(log4j.jar)。然后,配置log4j.properties或log4j.xml文件来指定日志输出的细节。 **总结** Slf4j作为一个抽象层,为...
在使用SLF4J时,通常需要在类路径中包含`slf4j-api.jar`,然后根据你的日志需求选择一个具体的实现库(如`slf4j-log4j12.jar`或`slf4j-simple.jar`)。如果多个实现库同时存在,SLF4J会遵循“就近加载”的原则,优先...
3. **slf4j-log4j12-1.6.6.jar**:这个jar包是SLF4J与Log4j之间的桥接器,它允许SLF4J调用Log4j进行日志记录。如果你的项目已经使用了Log4j作为日志系统,这个桥接器可以帮助你无缝地集成SLF4J。 4. **slf4j.jar**...
该压缩包中包含以下内容: 1、jcl-over-slf4j-1.7.21.jar 2、jcl-over-slf4j-1.7.21-sources.jar 3、jul-to-slf4j-1.7.21.jar 4、jul-to-slf4j-1.7.21-sources.jar 5、log4j-over-slf4j-1.7.21.jar 6、log4j-over-...
slf4j-api-1.6.0.jar,slf4j-jdk14-1.6.0.jar,slf4j-log4j12-1.6.0-rc0.jar,slf4j-nop-1.6.0.jar,slf4j-simple-1.6.0.jar
压缩包内的文件名称列表中,"slf4j-api-1.5.8.jar"是SLF4J API的1.5.8版本,而"slf4j-nop-1.5.8.jar"则是SLF4J NOP实现的同版本。这两个JAR文件通常会一起使用,API JAR提供日志接口,NOP JAR作为默认的日志实现。...
1、jcl-over-slf4j-1.7.21.jar 2、jcl-over-slf4j-1.7.21-sources.jar 3、jul-to-slf4j-1.7.21.jar 4、jul-to-slf4j-1.7.21-sources.jar 5、log4j-over-slf4j-1.7.21.jar 6、log4j-over-slf4j-1.7.21-sources....
2. **slf4j.jar**:这个文件可能是一个通用的引用,通常SLF4J的实现会依赖于特定的API版本,因此如果提供的是完整的SLF4J实现,那么可能包含的是某个版本的slf4j-api以及对应的实现。如果这个文件是多余的,可能需要...
3. `slf4j-log4j12-1.6.6.jar`:此文件是Slf4j与Log4j之间的适配器,允许Slf4j的日志调用被Log4j日志系统处理。Log4j是一款功能强大的日志框架,提供丰富的配置选项和多种日志输出方式,如文件、控制台、SMTP邮件等...
1.7.21-sources.jar 7、osgi-over-slf4j-1.7.21.jar 8、osgi-over-slf4j-1.7.21-sources.jar 9、slf4j-android-1.7.21.jar 10、slf4j-android-1.7.21-sources.jar 11、slf4j-api-1.7.21.jar 12、slf4j-api-1.7.21-...
日志记录文件,使用log4j,和slf4j。这种联合使用的方式,提供log4j的jar包、log4j-over-slf4j的jar包,slf4j-api的jar包,以及log4j.properties文件。
`slf4j-api-1.7.30.jar`即SLF4J的API包,提供了简单的日志记录接口,开发者可以使用这些接口而不需关心具体的日志实现。通过这个门面,开发者可以在不修改代码的情况下更换底层的日志框架,如从Log4j切换到Logback。...
在Java开发领域,DOM4J、SLF4J和LOG4J是三个非常重要的库,它们各自服务于不同的目的,但都是构建高效、可维护的Java应用程序的基石。 DOM4J是一个强大的XML处理库,它是Java社区中最受欢迎的XML API之一。DOM4J...