You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Spring的application.properties中指定带日期的日志文件名

解决Spring Boot配置带日期日志文件名的问题

Spring Boot的logging.file.name属性不支持Log4j的日期占位符%d,直接配置会被当作普通字符串写入,所以得用Log4j2的专属配置文件来实现按日期生成日志文件的需求(你用了Lombok的@Log4j2,说明项目已经基于Log4j2做日志管理)。

具体步骤:

  1. 关闭Spring Boot默认日志配置,指定Log4j2配置文件
    在application.properties中添加:
logging.config=classpath:log4j2.xml
  1. 创建Log4j2配置文件
    在src/main/resources下新建log4j2.xml,配置按日期滚动的日志输出:
<?xml version="1.0" encoding="UTF-8"?>
<Configuration status="INFO">
    <Appenders>
        <!-- 控制台日志输出 -->
        <Console name="Console" target="SYSTEM_OUT">
            <PatternLayout pattern="%d{yyyy-MM-dd HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n"/>
        </Console>
        <!-- 按日期滚动的文件日志输出 -->
        <RollingFile name="RollingFile" fileName="logs/LogFile.log"
                     filePattern="logs/LogFile.%d{yyyy-MM-dd}.log">
            <PatternLayout pattern="%d{yyyy-MM-dd HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n"/>
            <Policies>
                <!-- 每天自动滚动一次日志文件 -->
                <TimeBasedTriggeringPolicy interval="1" modulate="true"/>
            </Policies>
            <!-- 保留最近30天的历史日志 -->
            <DefaultRolloverStrategy max="30"/>
        </RollingFile>
    </Appenders>
    <Loggers>
        <Root level="info">
            <AppenderRef ref="Console"/>
            <AppenderRef ref="RollingFile"/>
        </Root>
    </Loggers>
</Configuration>
  • fileName:当前正在写入的日志文件名(当天日志会先写入这个文件)
  • filePattern:日志滚动后的文件名格式,每天结束后会自动将LogFile.log重命名为LogFile.2024-05-21.log这类带日期的文件,同时新建LogFile.log用于次日日志写入
  1. 确保依赖配置正确
    如果项目是Spring Boot Starter,需要排除默认的Logback依赖,引入Log4j2 Starter:
    Maven示例(pom.xml):
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-web</artifactId>
    <exclusions>
        <!-- 排除默认的Logback日志依赖 -->
        <exclusion>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-logging</artifactId>
        </exclusion>
    </exclusions>
</dependency>
<!-- 引入Log4j2 Starter -->
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-log4j2</artifactId>
</dependency>

内容的提问来源于stack exchange,提问作者xxlali

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.23 20:12:15