使用slf4j 1.8或更高版本测试日志记录

时间:2019-01-01 23:44:41

标签: slf4j

我想将slf4j-api依赖项更新为1.8.0-beta2,但是由于该版本,我不再能够使用uk.org.lidalia:slf4j-test:1.2.0来测试日志记录。出现以下错误:

SLF4J: Class path contains SLF4J bindings targeting slf4j-api versions prior to 1.8.
SLF4J: Ignoring binding found at [jar:file:/C:/Users/OEM/.m2/repository/uk/org/lidalia/slf4j-test/1.2.0/slf4j-test-1.2.0.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: See http://www.slf4j.org/codes.html#ignoredBindings for an explanation.

我在documentation中发现这是因为:

  

为Jigsaw(Java 9)的到来做准备的slf4j-api版本1.8.x及更高版本将使用ServiceLoader机制。早期版本的SLF4J依靠静态绑定器机制,而slf4j-api不再支持这种机制。

     

如果SLF4J没有找到针对SLF4J 1.8的提供程序,而是找到了针对SLF4J 1.7或更早版本的绑定,它将列出找到的绑定,否则将忽略它们。

我对slf4j日志记录测试有哪些选择? uk.org.lidalia:slf4j-test:1.2.0是最新版本,自2015年以来未更新。

1 个答案:

答案 0 :(得分:0)

也许一种方法是将logback-classic设置为具有“测试”范围的依赖项(此处使用Maven):

<!-- Logging during tests -->
<dependency>
    <groupId>ch.qos.logback</groupId>
    <artifactId>logback-classic</artifactId>
    <scope>test</scope>
    <version>LATEST</version>
</dependency>

并根据另一篇文章中的说明测试日志记录: https://stackoverflow.com/a/29077499/10881066

还看到了spf4j-slf4j-test吗?这看起来像您想要的。最新版本尚不支持slf4j 1.8,但该项目似乎正在得到积极维护。
在不久的将来可能会添加对Slf4j 1.8的支持吗?