繁体   English   中英

gradle junit使用slf4j测试日志记录

[英]gradle junit tests logging with slf4j

我正在尝试使用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>

您在类路径上有两个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,但是最好确保您在类路径上只有一个绑定。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM