【问题标题】:log4j and daylight savingslog4j 和夏令时
【发布时间】:2017-11-07 20:03:03
【问题描述】:

在北美切换到夏令时后,我们的日志出现问题。日志时间没有改变以反映时钟“向前跳”,直到日志翻转策略导致它重置。

我们在 RollingRandomAccessFile 附加程序中使用以下模式布局和策略:

        <PatternLayout>
            <Pattern>%d{ISO8601} traceId=%X{X-B3-TraceId} spanId=%X{X-B3-SpanId} [%-15.20t] %-5p %-20c{1.} : %m%n</Pattern>
        </PatternLayout>
        <Policies>
            <TimeBasedTriggeringPolicy interval="1" modulate="true"/>
            <!-- 100MB limit before log file is rolled over -->
            <SizeBasedTriggeringPolicy size="100 MB" />
        </Policies>

谁能指出 log4j 在这种情况下支持的预期行为?我们目前使用的是 log4j 版本 2.4.1

【问题讨论】:

  • 考虑为您的日志使用 UTC 时间戳。那么你永远不会有“时间变化”的问题。

标签: java logging configuration log4j log4j2


【解决方案1】:

这很可能是由 FixedDateFormat 类中的 issue with DST 引起的,Log4j2 用于预定义的日期格式(所有具有名称的格式,如 DEFAULT、ABSOLUTE、COMPACT、DATE、ISO8601 和 ISO8601_BASIC)。

该问题已得到修复,并将包含在即将发布的 Log4j 2.8.2 版本中。

【讨论】:

【解决方案2】:

在类似情况下,建议将 TZ 添加到您的模式中。由于您在贝尔法斯特(我认为伦敦更正确?来自Wikipedia),请尝试:

<Pattern>%d{ISO8601}{Europe/London} traceId=%X{X-B3-TraceId} spanId=%X{X-B3-SpanId} [%-15.20t] %-5p %-20c{1.} : %m%n</Pattern>

来自Log4J 2 Layouts

d{模式}

日期{模式}

输出记录事件的日期。日期转换说明符后面可以跟一组大括号,其中包含每个 SimpleDateFormat 的日期和时间模式字符串。

预定义格式为 DEFAULT、ABSOLUTE、COMPACT、DATE、ISO8601 和 ISO8601_BASIC。

您还可以使用一组大括号,其中包含每个 java.util.TimeZone.getTimeZone 的时区 ID。如果没有给出日期格式说明符,则使用 DEFAULT 格式。

Pattern             Example
%d{DEFAULT}         2012-11-02 14:34:02,781
%d{ISO8601}         2012-11-02T14:34:02,781
%d{ISO8601_BASIC}   20121102T143402,781
%d{ABSOLUTE}        14:34:02,781
%d{DATE}            02 Nov 2012 14:34:02,781
%d{COMPACT}         20121102143402781
%d{HH:mm:ss,SSS}    14:34:02,781
%d{dd MMM yyyy HH:mm:ss,SSS}    02 Nov 2012 14:34:02,781
%d{HH:mm:ss}{GMT+0} 18:34:02
%d{UNIX}            1351866842
%d{UNIX_MILLIS}     1351866842781

可能重复:Configure DST(Daylight Savings Time) in log4j - 如果适合您,请记下有关 TZUpdater 的其他信息。

其他相关错误报告:How does log4j2 handle daylight savings

【讨论】:

    猜你喜欢
    • 2012-10-23
    • 2016-02-02
    • 2010-09-19
    • 2017-04-29
    • 2016-10-11
    • 2021-06-22
    • 2014-02-22
    • 2019-04-09
    • 2013-10-13
    相关资源
    最近更新 更多