2012-06-06 153 views
1

可能重复:
Log4J; how to ensure timestamps are always in GMT using ConversionPattern?log4j的UTC日期时间配置

如何配置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> 
+0

看到这篇文章:http://stackoverflow.com/questions/3634585/log4j-how-to-ensure-timestamps-are-always-in-gmt-using-conversionpattern并应用UTC而不是GMT如果你愿意。 –

+0

当我使用Log4j-extras中的EnhancedPatternLayout(我使用1.1的版本)时,它对我很有用。 \t \t \t \t \t nagendra

回答

0

我不认为这是一个好办法。但破解这个螺母的一种方法是扩展PatternLayout

第1步 - 编写自己的DateFormat,类似于log4j的AbsoluteTimeDateFormat

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

第3步 - 扩展PatternLayout并覆盖createPatternParser返回您的子类PatternParser

第4步 - 更改您的配置使用您的子类PatternLayout

+0

尽管我写的会有效, 。 –