【问题标题】:Spring boot slf4j/log4j disable daily RollingFilePolicySpring boot slf4j/log4j 禁用每日 RollingFilePolicy
【发布时间】:2019-09-16 21:01:31
【问题描述】:

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

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

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

这里是与登录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!");

【问题讨论】:

  • 您在 logging.log 中使用了哪个附加程序?使用 FileAppender 而不是 RollingFileAppender

标签: java spring spring-boot log4j slf4j


【解决方案1】:

经过大量时间搜索如何在不使用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>

我基于 org/springframework/boot/logging/logback/ 包内的 spring 日志记录默认值创建它,忽略 FileAppender.xml 文件。

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

【讨论】:

  • 您还能通过 application.properties 配置日志记录吗?基本上我只想禁用每日 RollingFilePolicy 并通过 application.properties 控制其余部分。但我不知何故无法正常工作。
猜你喜欢
  • 1970-01-01
  • 2023-04-04
  • 1970-01-01
  • 2016-12-03
  • 2014-07-05
  • 2021-04-05
  • 2020-02-21
  • 2016-11-11
  • 1970-01-01
相关资源
最近更新 更多