簡體   English   中英

如何在 Spring Boot 測試(集成測試)期間查看自動配置日志輸出

[英]How to view autoconfigure log output during spring boot tests (integration tests)

我正在嘗試在測試期間調試 Spring Boot 應用程序,尤其是查看日志輸出。

我不確定如何在測試期間獲得與運行應用程序時相同的自動配置日志輸出

我試過這個(來自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>

在測試期間我仍然沒有得到任何自動配置信息......

我不認為將顯式 log4j 配置 (log4j.properties) 與 Spring Boot 結合起來是個好主意。 我會使用其中之一。

org.springframework.boot.autoconfigure.logging包配置 DEBUG 級別時打印自動配置信息。

在這種情況下 log4j.properties 似乎適用。 嘗試改變:

log4j.rootLogger=DEBUG, stdout

或者,如果您決定使用應用程序屬性:

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

順便說一句,log4j 是一項古老的技術。 您應該遷移到 LogBack 或 log4j2。

相互競爭的日志框架也可能會阻止顯示自動配置調試。

您可能需要排除其中之一才能查看 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'
    }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM