如何强制 spring 不压缩日志文件,而是在日志文件末尾附加日期

T T*_*T T 4 logging log4j2 spring-boot

目前我正在使用 spring boot 日志,并且通过属性文件对其进行配置,下面是示例日志记录属性

spring.main.banner-mode=off
logging.level.root= INFO,ERROR,DEBUG
logging.level.org.springframework.web= ERROR
logging.level.com.concretepage= DEBUG 
logging.pattern.console=
logging.file = D://logTest.log
logging.file.max-size=100MB
spring.output.ansi.enabled=ALWAYS
Run Code Online (Sandbox Code Playgroud)

问题是日志文件备份格式为.gz格式,如logTest.log.2019-06-14.0.gz

如何排除默认压缩?

我不想在 xml 文件中硬连接配置并将其放入资源文件夹中。我只能放置滚动appender配置xml文件,但我想在属性文件中创建日志文件路径,这样我就可以针对不同的环境动态设置它。

有什么办法可以实现这个配置吗?

Woo*_*odz 8

作为 @simon-martinelli 正确答案的替代方案,如果您不想使用自定义文件,则可以在您的或文件中设置logback-spring.xmlSpring 配置参数。logging.pattern.rolling-file-nameapplication.propertiesapplication.yml

例如,要禁用使用的压缩,请.gz从默认文件名模式中删除后缀(${LOG_FILE}.%d{yyyy-MM-dd}.%i.gz按照https://docs.spring.io/spring-boot/docs/current/reference/html/spring-boot-features.html #boot-features-custom-log-configuration)。

这需要将以下元素添加到文件中application.yml

logging:
  pattern:
    rolling-file-name: "${LOG_FILE}.%d{yyyy-MM-dd}.%i"
Run Code Online (Sandbox Code Playgroud)

或者,如果您使用的application.properties是:

logging.pattern.rolling-file-name = ${LOG_FILE}.%d{yyyy-MM-dd}.%i
Run Code Online (Sandbox Code Playgroud)

  • 从 Spring Boot 2.4+ 开始,它现在是“logging.logback.rollingpolicy.file-name-pattern”。https://github.com/spring-projects/spring-boot/issues/25535#issuecomment-7947​​17348 (3认同)