如何使用Spring Boot / slf4j在日志文件的名称中包含日期?

sin*_*sem 6 java logging spring slf4j spring-boot

这与将日志文件名设置为在Log4j中包括当前日期的问题相同,但是如何将其应用于slf4j附带的Spring Boot?

application.properties

spring.application.name=keywords
logging.file=logs/${spring.application.name}.log
Run Code Online (Sandbox Code Playgroud)

Mik*_*neu 4

如此处所述

Spring Boot 有一个 LoggingSystem 抽象,它尝试根据类路径的内容配置日志记录。

使用它

最简单的方法是通过所有依赖的 starter pom spring-boot-starter-logging。对于 Web 应用程序,您只需要它spring-boot-starter-web,因为它传递地依赖于日志记录启动器。

在此输入图像描述

因为 Logback 可用,所以它是首选。

要配置日志系统的更细粒度设置,您需要使用相关日志系统支持的本机配置格式。默认情况下,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>
Run Code Online (Sandbox Code Playgroud)

可以在此处找到其他文档