以下log4j模式布局
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern" value="%d{yyyy-MM-dd HH:mm:ss,SSS} | %-5p | %-35.35c{1} | %m%n" />
</layout>
以UTC而不是本地时区生成时间戳。那是为什么?
此unix系统上的 LANG
为en_US.iso885915
。在shell中键入date
将生成一个具有正确(本地)时区的日期。
答案 0 :(得分:1)
我想,问题实际上是JVM不使用操作系统TimeZone,但它有自己的属性来存储它。
可以通过JVM参数设置,例如:
-Duser.timezone=Europe/Sofia
顺便说一下,如果使用Apache Extras for log4j,可以将log设置为log4j模式(作为%d模式的一部分),如下所示:
<param name="ConversionPattern" value="%d{yyyy-MM-dd HH:mm:ss,SSS}{GMT-4} | %-5p | %-35.35c{1} | %m%n" />