我的 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!");
最佳答案
经过几个小时的搜索如何在不使用 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 文件不存在。
关于java - Spring boot slf4j/log4j 禁用每日 RollingFilePolicy,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57964371/