Spring 启动 SLF4j Logback

Spring Boot SLF4j Logback

我有一个小型 SpringBoot MvC 应用程序。具有这些依赖项:

<dependencies>
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>${junit.version}</version>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <version>${spring-boot-starter-test.version}</version>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>com.h2database</groupId>
            <artifactId>h2</artifactId>
            <scope>test</scope>
        </dependency>

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-data-jpa</artifactId>
        </dependency>
    </dependencies>

我在 /src/test/resources/ 中放置了一个 logback-test.xml 文件,当我 运行 测试时它工作正常

<configuration debug="true" scan="true" scanPeriod="150 seconds">
    <property name="LOG_DIR" value="logs-test" />
    <appender name="FILE_INFO"
            class="ch.qos.logback.core.rolling.RollingFileAppender">
        <file>${LOG_DIR}/app_info.log</file>
        <encoder
                class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
            <Pattern>
                %d{yyyy-MM-dd HH:mm:ss} [%thread] %-5level %logger{36} -
                %msg%n
            </Pattern>
....
</configuration>

但是当我添加到文件时 /src/test/resources/application.properties:

  # logging level
logging.level.root=error
    logging.level.org.springframework=ERROR
    logging.level.com.plats.bruts=ERROR

但它似乎不起作用,因为我在 运行 进行测试时在控制台上看到 DEBUG 级别:

10:16:08.039 [main] DEBUG org.springframework.test.context.junit4.SpringJUnit4ClassRunner - SpringJUnit4ClassRunner constructor called with [class eu.europa.ec.oib.kw.frontoffice.repository.autorisation.AutorisationPersonneRepositoryTest]
10:16:08.047 [main] DEBUG org.springframework.test.context.BootstrapUtils 

确保在测试 spring 启动应用程序时使用 @SpringBootTest 注释,以便 spring 启动以加载默认的 logback 日志记录。

在大多数情况下,您可以 configure 而无需自定义 logback xml 文件,并且可以使用 application.properties.

进行管理

对于非 spring 引导测试用例,您必须提供自己的 logback xml 文件。

对于自定义配置,您应该根据 spring 引导库中提供的 base.xml 默认值构建您的文件(定义了文件和控制台附加程序),以便您可以导入默认值并添加特定配置根据您的需要。

这样您仍然可以通过 spring 启动测试的应用程序属性管理 default configuration attributes。同时重命名文件以 spring 扩展名结尾,这样 spring 引导可以控制日志记录初始化。

类似

<configuration>
    <include resource="org/springframework/boot/logging/logback/base.xml" />
    !-- custom configuration goes here --!
</configuration>