Spring 启动 slf4j/log4j 禁用每日 RollingFilePolicy

Spring boot slf4j/log4j disable daily RollingFilePolicy

我的 Spring 启动应用程序每天都在创建一个新存档(命名为 logging.log.2019-08-30.0.gz)并开始记录一个新文件。禁用此功能并让记录器登录到旧文件的方法是什么,无论过去多少天?

我在大约 1.5 年前创建了一个 Spring 引导应用程序,它的记录器没有这种行为,但我最近创建的那个有。 可能和新版本有关?

我使用几乎完全相同的配置,但仍然...每天都有新日志。我在网上找了很多东西,但所有帖子都在谈论如何添加它,而不是如何删除它。

以下是与登录相关的所有设置application.properties(我没有使用任何额外的配置):

logging.level.root=INFO
logging.level.org=WARN
logging.level.com=WARN
logging.pattern.console=%d{yyyy-MM-dd HH:mm:ss} %c{1} - %msg%n
logging.pattern.file=%d{yyyy-MM-dd HH:mm:ss} [%thread] %-5level %c - %msg%n
logging.file=logging.log
logging.file.max-size=1GB

pom.xml中依赖项的完整列表(所有最新版本):

spring-boot-starter-data-jpa
thymeleaf-spring3
spring-boot-starter-security
spring-boot-starter-web
spring-boot-starter-mail
mysql-connector-java
spring-boot-configuration-processor

我创建和使用记录器的方式:

private static final org.slf4j.Logger log = org.slf4j.LoggerFactory.getLogger(MyController.class);
...
log.info("My controller did something!");

在搜索了很多小时如何在不使用 logback.xml 的情况下删除 RollingFilePolicy 之后,我放弃了。因此,为了实现它(并保留我当前的日志记录附加程序),我在 src/main/resources 文件中添加了一个 logback.xml 文件,如下所示:

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
    <include
        resource="org/springframework/boot/logging/logback/defaults.xml" />
    <property name="LOG_FILE"
        value="${LOG_FILE:-${LOG_PATH:-${LOG_TEMP:-${java.io.tmpdir:-/tmp}}}/spring.log}" />


    <appender name="FILE"
        class="ch.qos.logback.core.FileAppender">
        <encoder>
            <pattern>${FILE_LOG_PATTERN}</pattern>
        </encoder>
        <file>${LOG_FILE}</file>
    </appender>
    <appender name="CONSOLE"
        class="ch.qos.logback.core.ConsoleAppender">
        <encoder>
            <pattern>${CONSOLE_LOG_PATTERN}</pattern>
        </encoder>
    </appender>

    <root level="INFO">
        <appender-ref ref="CONSOLE" />
        <appender-ref ref="FILE" />
    </root>
</configuration>

我根据 spring 在 org/springframework/boot/logging/logback/ 包中记录默认值创建它,忽略 FileAppender.xml 文件。

请注意,正如 Spring 的 github repository 中所示,默认日志记录配置正在更改并且这些 XML 文件不存在。