【问题标题】:How to include date in log file's name with Spring Boot / slf4j?如何使用 Spring Boot / slf4j 在日志文件名中包含日期?
【发布时间】:2025-11-24 19:05:01
【问题描述】:
【问题讨论】:
标签:
java
spring
logging
spring-boot
slf4j
【解决方案1】:
如here所述
Spring Boot 有一个 LoggingSystem 抽象,它尝试根据类路径的内容配置日志记录。
使用它
最简单的方法是通过所有依赖于spring-boot-starter-logging 的starter pom。对于 Web 应用程序,您只需要 spring-boot-starter-web,因为它可传递地依赖于日志记录启动器。
因为有Logback,所以首选。
要配置日志系统的更细粒度设置,您需要使用相关 LoggingSystem 支持的本机配置格式。默认情况下,Spring Boot 从系统的默认位置获取本机配置(例如,用于 Logback 的 classpath:logback.xml),但您可以使用“logging.config”属性设置配置文件的位置。
如果默认设置对您来说没问题,只需创建 logback.xml 并添加相应的文件附加程序,例如
<appender name="rollingFileAppender" class="ch.qos.logback.core.rolling.RollingFileAppender">
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<FileNamePattern>LogFile.%d{yyyy-MM-dd}.log</FileNamePattern>
<MaxHistory>30</MaxHistory>
</rollingPolicy>
<encoder>
<pattern>%d %-5level [%thread] %logger{0}: %msg%n</pattern>
</encoder>
</appender>
可以在here找到其他文档