log4j2压缩文件名称错误

小胖
  • 70

问题描述

现在我有一个java程序使用log4j2管理日志,我在log4j2.xml中配置日志文件的名称根据日志动态生成。现在的问题是日志文件和文件夹的名称正确,但是日志压缩文件名称中的日期区却是错误的。
情况如下图:
($N$HP}NM4~72)USNS`7AO9.png
文件夹名称[2020-07-13]是正确的,而压缩文件名称中的日期却是[2020-05-11]。

logj2.xml中的配置

<!-- 常规日志 -->
<RollingFile name="rollingFile_info"
    fileName="${LOG_HOME}/info.log"
    filePattern="${LOG_HOME}/${date:yyyy-MM-dd}/info-%d{yyyy-MM-dd}-%i.log.gz">
    <!-- 输出级别 -->
    <Filters>
        <!-- 限制日志级别在info及以上在error以下 -->
        <!-- error级别以下 -->    
        <ThresholdFilter level="error" onMatch="DENY" onMismatch="NEUTRAL"/>
        <!-- info级别以上 -->
        <ThresholdFilter level="info" onMatch="accept" onMismatch="deny"/>
    </Filters>

    <!-- 输出格式 -->
    <PatternLayout pattern="%d{yyyy-MM-dd 'at' HH:mm:ss z} %-5level %class{36} %L %M - %msg%xEx%n"/>

    <!-- 封存策略 -->
    <Policies>
        <!-- 文件大小 超出后自动封存 -->
        <SizeBasedTriggeringPolicy size="5MB"/>
        <!-- 时间间隔 -->
        <TimeBasedTriggeringPolicy modulate="true" interval="1"/>
    </Policies>
</RollingFile>
回复
阅读 1.4k
1 个回答

这里配置起作用的是

 <!-- 文件大小 超出后自动封存 -->
        <SizeBasedTriggeringPolicy size="5MB"/>

不是按时间,所以出现了你说的情况。

试试把上面的配置换成

<TimeBasedTriggeringPolicy filePattern=
"${LOG_HOME}/${date:yyyy-MM-dd}/info-${date:yyyy-MM-dd}-%i.log.gz"
 />
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
宣传栏