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

bal*_*teo 8 java spring log4j spring-test spring-boot

我试图在测试期间调试弹簧启动应用程序,尤其是查看日志输出.

我不确定如何在测试期间获得与运行应用程序时相同的自动配置日志输出.

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

logging.level.org.springframework.boot.autoconfigure.test=DEBUG
Run Code Online (Sandbox Code Playgroud)

logging.level.org.springframework.boot.autoconfigure=DEBUG
Run Code Online (Sandbox Code Playgroud)

顺便说一句,我使用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
Run Code Online (Sandbox Code Playgroud)

编辑:我已迁移到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>
Run Code Online (Sandbox Code Playgroud)

测试期间我仍然没有得到任何自动配置信息......

lub*_*nac 8

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

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

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

log4j.rootLogger=DEBUG, stdout
Run Code Online (Sandbox Code Playgroud)

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

logging.level.org.springframework.boot.autoconfigure.logging=DEBUG
Run Code Online (Sandbox Code Playgroud)

BTW,log4j是古老的技术.您应该迁移到LogBack或log4j2.