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

如何配置Log4j生成function_YYYYMMDDH24MI-record.log格式日志文件?

配置Log4j生成指定格式的日志文件名

没问题,完全可以实现你想要的function_YYYYMMDDH24MI-record.log格式日志文件名,这里给你两种可行的方案,根据你的依赖情况来选:

方案1:用原生DailyRollingFileAppender(无需额外依赖)

如果你不想引入新的依赖包,可以调整现有DailyRollingFileAppender的参数来实现。原生的DailyRollingFileAppender会把DatePattern的值直接追加到File参数指定的路径后面,作为滚动后的文件名。

你只需要修改File和DatePattern的配置即可,调整后的完整配置如下:

<appender name="function" class="org.apache.log4j.DailyRollingFileAppender">
    <param name="File" value="${catalina.base}/logs/function_" />
    <param name="DatePattern" value="yyyyMMddHHmm-record.log" />
    <layout class="org.apache.log4j.PatternLayout">
        <param name="ConversionPattern" value="%-d{yyyy-MM-dd HH:mm:ss.SSS} %-5p %c{1}:%L - %m%n" />
    </layout>
</appender>

注意点:

  • 初始写入的日志文件会是function_(没有.log后缀),但当到达滚动时间点(因为你用了yyyyMMddHHmm,也就是每分钟滚动一次),这个文件会被重命名为function_YYYYMMDDHHmm-record.log,同时会新建一个function_文件继续写入。如果能接受初始文件的临时状态,这个方案完全够用。

方案2:用Log4j Extras的TimeBasedRollingPolicy(推荐,更灵活)

如果想要初始文件也严格符合目标格式,推荐使用Log4j的扩展组件log4j-extras,它提供的TimeBasedRollingPolicy可以精准控制日志文件名的格式,没有方案1的临时文件问题。

步骤1:引入依赖(如果用Maven)

首先确保项目中添加了log4j-extras的依赖:

<dependency>
    <groupId>log4j</groupId>
    <artifactId>log4j-extras</artifactId>
    <version>1.2.17</version>
</dependency>

步骤2:修改log4j.xml配置

替换原来的DailyRollingFileAppender为带滚动策略的RollingFileAppender:

<appender name="function" class="org.apache.log4j.rolling.RollingFileAppender">
    <rollingPolicy class="org.apache.log4j.rolling.TimeBasedRollingPolicy">
        <!-- 这里直接指定你想要的完整文件名格式 -->
        <param name="FileNamePattern" value="${catalina.base}/logs/function_%d{yyyyMMddHHmm}-record.log" />
        <!-- 可选配置:设置日志文件的保留天数,比如保留30天 -->
        <param name="MaxHistory" value="30" />
    </rollingPolicy>
    <layout class="org.apache.log4j.PatternLayout">
        <param name="ConversionPattern" value="%-d{yyyy-MM-dd HH:mm:ss.SSS} %-5p %c{1}:%L - %m%n" />
    </layout>
</appender>

这个方案下,所有生成的日志文件都会严格遵循function_YYYYMMDDHHmm-record.log的格式,包括初始写入的文件,滚动时也会自动生成新的时间戳文件名,体验更顺畅。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.27 03:48:24