【问题标题】:log4j UTC datetime configuration [duplicate]log4j UTC 日期时间配置 [重复]
【发布时间】:2012-06-10 16:58:13
【问题描述】:

可能重复:
Log4J; how to ensure timestamps are always in GMT using ConversionPattern?

如何配置 log4j 以 UTC 格式显示日期时间。

目前我正在使用以下配置

<appender name="trap-appender" class="org.apache.log4j.DailyRollingFileAppender">
    <param name="file" value="logs/exception/ExceptionLog.log" />
    <param name="append" value="true" />
    <param name="encoding" value="UTF-8" />
    <layout class="org.apache.log4j.PatternLayout">
         <param name="ConversionPattern" value="%d{yyyy-MM-dd/HH:mm:ss.SSS}:%m%n" />
    </layout>
</appender>

【问题讨论】:

  • 查看这篇文章:stackoverflow.com/questions/3634585/…,如果您愿意,可以使用 UTC 而不是 GMT。
  • 当我使用 log4j-extras 中的 EnhancedPatternLayout(我使用 1.1 版本)时,它对我有用

标签: java log4j


【解决方案1】:

我不认为有什么好办法。但是解决这个问题的一种方法是扩展PatternLayout

  1. 编写自己的 DateFormat,类似于 log4j 的 AbsoluteTimeDateFormat

  2. 扩展PatternParser 并覆盖void finalizeConverter(char c) 以支持新的特殊格式代码,例如%d{UTC}

  3. 扩展PatternLayout 并覆盖createPatternParser 以返回PatternParser 的子类。

  4. 更改您的配置以使用PatternLayout 的子类。

【讨论】:

  • 虽然我写的内容会起作用,但@Kal 提到的副本是一个更优越的解决方案。
猜你喜欢
  • 1970-01-01
  • 2019-07-30
  • 1970-01-01
  • 1970-01-01
  • 2018-06-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多