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

Log4j2日志未按预期UTC时间滚动问题求助

解决Log4j2日志在UTC 00:00自动滚动并包含完整前一日日志的问题

要实现每天UTC 00:00自动滚动日志,且归档文件包含前一天UTC 00:00-23:59的完整日志,你需要在Log4j2配置中明确指定UTC时区,同时调整滚动触发策略的参数。以下是具体修改方案:

关键修改点

  • 在filePattern的日期格式中添加{UTC},确保归档文件名的日期基于UTC时区
  • 给TimeBasedTriggeringPolicy添加timeZone="UTC"属性,让滚动触发时间以UTC为准
  • 保持modulate="true",确保滚动时间对齐到UTC日边界

修改后的完整配置

<?xml version="1.0" encoding="UTF-8"?>
<Configuration status="INFO" packages="com.fidelis.k2.logging.filter">
    <Properties>
        <Property name="log_path">/opt/k2/logs</Property>
        <Property name="log_pattern">%t - %d{yyyy-MM-dd HH:mm:ss}{UTC} %-5p %c:%L - %m%n</Property>
    </Properties>
    <Appenders>
        <Console name="console" target="SYSTEM_OUT">
            <PatternLayout pattern="%d{HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n"/>
        </Console>
        <RollingFile name="rollingFile" fileName="${log_path}/solr_data_uploader.log"
                     filePattern="${log_path}/solr_data_uploader-%d{yyyy-MM-dd}{UTC}.log.gz">
            <PatternLayout>
                <pattern>${log_pattern}</pattern>
            </PatternLayout>
            <Policies>
                <TimeBasedTriggeringPolicy interval="1" modulate="true" timeUnit="days" timeZone="UTC"/>
            </Policies>
            <DefaultRolloverStrategy max="15"/>
        </RollingFile>
    </Appenders>
    <Loggers>
        <Logger name="com.fidelis.k2" level="info" additivity="false">
            <AppenderRef ref="rollingFile"/>
        </Logger>
        <Root level="info">
            <AppenderRef ref="console"/>
        </Root>
    </Loggers>
</Configuration>

原理说明

  1. 时区指定:默认情况下Log4j2使用系统时区,导致滚动时间和文件名日期都基于系统时区。通过在日期格式和触发策略中明确指定UTC,确保所有时间计算都以UTC为准。
  2. modulate参数:当modulate="true"且时区为UTC时,Log4j2会将滚动触发时间对齐到UTC日的00:00点,而不是从应用启动时间开始计算间隔。
  3. 日志格式中的UTC:额外将log_pattern中的日期也指定为UTC,确保日志内容中的时间戳也是UTC时间,和归档文件的时间范围完全匹配。

这样修改后,每天UTC 00:00会自动归档前一天UTC 00:00到23:59的完整日志,文件名中的日期也会对应前一天的UTC日期(例如11月21日UTC00:00生成的文件名为solr_data_uploader-202X-11-20.log.gz)。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.05 14:15:13