我正在尝试在测试期间调试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>
在测试过程中我仍然没有得到任何自动配置信息......
答案 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'
}
}