2011-11-18 64 views
1

我有一个“奇怪”的问题。我在Java应用程序中使用log4j。 在我的电脑上,出现在log4j生成日志中的时间很好,对应于我机器的本地时间。Windows Server 2003上log4j日志的错误时间

问题是,当我在Windows Server 2003上部署应用程序时,出现在日志文件中的时间已经过时。日期没问题,但小时和分钟根本没有。它们在所有服务器的当地时间都不匹配。而且由于当地时间和日志时间之间的差异似乎是4小时30分钟,所以我似乎不是时区问题。我知道,有一些30分钟的时区,但是,仍然...

有人知道这有可能吗?

在这里,你有附加器R中的转换模式:

log4j.appender.R=org.apache.log4j.RollingFileAppender 
log4j.appender.R.layout.ConversionPattern=%d [%t] %-5p %c - %m%n 

我只放了log4j.properties的这一部分,因为只有这个人是我的问题感兴趣。

+2

什么是本地机器和服务器的时区系统设置? – beny23

+0

我是(UTC + 1:00),服务器是UTC – ovdsrn

+0

它们至少是连续的,并且随着服务器运行时间的增长而增长?你提到不相关,但我认为你的意思是他们不匹配服务器的时钟。 – Gray

回答

0

不过,它看起来像是一个时区问题。例如,您是否在不同的用户帐户上运行应用程序,而不是用于检查服务器上的日期?

的Log4j采用默认的时区,所以你可以尝试用其他命令行选项运行你的应用程序:

-Duser.timezone=UTC 

,看看它是否有什么变化。

+0

感谢您的回答,但不是,应用程序从管理员帐户运行(与用于检查服务器上的日期相同)。 – ovdsrn

+0

@ovdsrn如果使用-Duser.timezone运行它,会发生什么情况? – MaDa