如何在Spring启动测试期间查看自动配置日志输出(集成测试)

时间:2015-09-26 19:01:05

标签: java spring spring-boot log4j spring-test

我正在尝试在测试期间调试spring引导应用程序,尤其是查看日志输出。

我不确定如何在测试期间获得与运行应用程序时相同的 autoconfigure log output

我试过这个(来自src/main/resources/application-test.properties):

logging.level.org.springframework.boot.autoconfigure.test=DEBUG

logging.level.org.springframework.boot.autoconfigure=DEBUG

顺便说一句,我使用带有以下配置的log4j(来自src/main/resources/log4j.properties):

log4j.rootLogger=WARN, stdout
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%d [%t] %-5p %c - %m%n

编辑:我已迁移到logback。这是我的src/main/resources/logback-test.xml

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

    <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
        <layout class="ch.qos.logback.classic.PatternLayout">
            <Pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</Pattern>
        </layout>
    </appender>

    <logger name="org.springframework.boot.autoconfigure" level="debug"/>

    <root level="warn">
        <appender-ref ref="STDOUT"/>
    </root>
</configuration>

在测试过程中我仍然没有得到任何自动配置信息......

2 个答案:

答案 0 :(得分:5)

我不相信将显式log4j配置(log4j.properties)与Spring Boot one结合起来是个好主意。我会使用其中一种。

org.springframework.boot.autoconfigure.logging包配置DEBUG级别时,将打印自动配置信息。

在这种情况下,log4j.properties似乎适用。尝试改变:

log4j.rootLogger=DEBUG, stdout

或者,如果您决定使用应用程序属性:

logging.level.org.springframework.boot.autoconfigure.logging=DEBUG
BTW,log4j是古老的技术。您应该迁移到LogBack或log4j2。

答案 1 :(得分:0)

相互竞争的日志框架也可能会阻止显示自动配置调试。

您可能需要排除其中之一才能看到 Spring Boot DEBUG。

就我而言,我在 Spring Boot 应用程序中包含了 io.rest-assured:rest-assured 库。 RestAssured 使用 commons-logging 库。我需要排除这个才能看到 Spring Boot DEBUG。在我的 build.gradle 中:

configurations {
    all {
        exclude group: 'commons-logging', module: 'commons-logging'
    }
}