gradle这个JUnit测试与SLF4J

问题描述:

我试图使测试记录与摇篮4.2.1和JUnit 4gradle这个JUnit测试与SLF4J

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> 
+0

你的logback(-test).xml是怎么样的?我能够看到WARN和ERROR, – A4L

+0

编辑上面的问题。任何其他文件,我需要使这项工作?你能分享你的设置吗? – Gadi

+0

我的设置只包含''INFO''和'logback-test.xml'这两个根级别的记录器,放在'src/test/resources'中,确保你的配置文件在类路径中,并且被有效地使用。 – A4L

你必须在classpath中引入两个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-简单的只有INFO及以上,这可以是变动通过配置您可能没有的simplelogger.properties编辑。

所以你的问题,只看到信息和以上,可能是由slf4j简单优先于logback经典。

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

+0

谢谢,这也是有用的信息 – Gadi