2

我的服务器日期配置和在 ubuntu 10.04 上运行 log4j 和 solr 的 java 有问题。

系统时间为 CEST。日期命令输出:

# date
Di 31. Jul 14:05:02 CEST 2012

但是我使用 log4j 记录的应用程序日志中的时间是:

2012-07-31 12:05:02

我在我的 log4j.properties 文件中使用这一行:

log4j.appender.rollingFile.layout.ConversionPattern=%d{ISO8601} %p %t %c - %m%n

现在我构建了一个 jar 来测试包含基本上两行代码的时间:

Date date = new Date(System.currentTimeMillis());
System.out.println(DateFormat.getDateTimeInstance().format(date));

这给了我预期的错误输出:

# java -jar javaDate.jar
31.07.2012 12:05:02

如果我使用时区的虚拟机参数它可以正常工作

java -Duser.timezone=Europe/Berlin -jar javaDate.jar 
31.07.2012 14:05:02

但是如果我使用相同的参数来启动使用 log4j 的应用程序,我的日志中仍然会出现错误的时间戳。为什么????

4

1 回答 1

2

如果您使用的是最新版本的 log4j,您应该能够使用 EnhancedPatternLayout 如果您添加:

log4j.appender.rollingFile.layout=org.apache.log4j.EnhancedPatternLayout

到您的配置和使用

%d{ISO8601}{Europe/Berlin}

在您的布局中。

于 2012-07-31T12:41:18.407 回答