【问题标题】:gradle junit tests logging with slf4jgradle junit 使用 slf4j 测试日志记录
【发布时间】:2018-03-28 21:43:56
【问题描述】:

我正在尝试使用 Gradle 4.2.1 和 JUnit 4 启用测试日志记录。

https://discuss.gradle.org/t/allow-slf4j-logging-during-junit-tests/24449

由于某种原因,我只能看到 INFO 日志级别,而不是高于(WARN、ERROR)。有人设法将其设置为在单元测试期间显示所有日志级别吗?

提前致谢。

dependencies {
    compile group: 'org.slf4j', name:'slf4j-api', version: '1.7.21'
    compile group: 'org.slf4j', name:'slf4j-simple', version: '1.7.21'
    compile group: 'ch.qos.logback', name: 'logback-classic', version:  '1.1.7'
    testCompile group: 'junit', name: 'junit', version: '4.12'
}

...

test {
    testLogging {    
        showStandardStreams true
        exceptionFormat 'full'

logback-test.xml

<?xml version="1.0" encoding="UTF-8"?>
<configuration>

    <appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender">
        <encoder>
            <pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{5} - %msg%n</pattern>
        </encoder>
    </appender>

    <logger name="io.effectus.cqrs" level="INFO" additivity="false">
        <appender-ref ref="CONSOLE" />
    </logger>

    <root level="WARN">
        <appender-ref ref="CONSOLE" />
    </root>

</configuration>

【问题讨论】:

  • 你的 logback(-test).xml 看起来怎么样?我可以看到 WARN 和 ERROR,
  • 以上已编辑问题。我需要其他任何文件来完成这项工作吗?你能分享你的设置吗?
  • 我的设置只包括根记录器,级别为 INFOlogback-test.xml 放置在 src/test/resources 中,确保您的配置文件在类路径中并有效使用。
  • 我只看到 INFO 日志,所以有些东西不能正常工作。您是否在 build.gradle 文件中添加了任何 gradle 链接?
  • 什么都没有,我的测试配置和你的 test { testLogging { showStandardStreams true exceptionFormat 'full' } } 相同,它也适用于 test { testLogging.showStandardStreams = true }

标签: java logging gradle junit slf4j


【解决方案1】:

类路径上有两个 SLF4J 实现:

compile group: 'org.slf4j', name:'slf4j-simple', version: '1.7.21'
compile group: 'ch.qos.logback', name: 'logback-classic', version:  '1.1.7'

slf4j-simple的默认只有INFO及以上,这可以通过配置你可能没有的simplelogger.properties来改变。

所以你的问题,只看到 INFO 及以上,可能是由 slf4j-simple 优先于 logback-classic 引起的。

您在评论中提到升级到 logback 1.2.3 后它可以工作。可能由于某种原因,现在这优先于 slf4j-simple,但最好确保您在类路径上只有一个绑定。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-01-21
    • 2012-08-26
    • 2011-11-07
    • 1970-01-01
    • 2017-05-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多