log4j2压缩文件名称错误

问题描述

现在我有一个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>
阅读 209
评论
    1 个回答
    • 11.6k

    这里配置起作用的是

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

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

    试试把上面的配置换成

    <TimeBasedTriggeringPolicy filePattern=
    "${LOG_HOME}/${date:yyyy-MM-dd}/info-${date:yyyy-MM-dd}-%i.log.gz"
     />
      撰写回答

      登录后参与交流、获取后续更新提醒

      相似问题
      推荐文章