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>
答
你必须在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
你的logback(-test).xml是怎么样的?我能够看到WARN和ERROR, – A4L
编辑上面的问题。任何其他文件,我需要使这项工作?你能分享你的设置吗? – Gadi
我的设置只包含''INFO''和'logback-test.xml'这两个根级别的记录器,放在'src/test/resources'中,确保你的配置文件在类路径中,并且被有效地使用。 – A4L