最近我遇到了这种情况,我在服务器中有两种不同类型的日志。一个是直接使用JDK系统时间并显示另一个是在WLP中使用log4j。
与亚洲机器相比,正在使用log4j的时间比Austin机器中的当前系统时间提前一小时(假设时区问题)(没有log4j实现的日志显示正确的时间)。
由于Day Light Saving,可能会出现这种情况。我查看了log4j2.xml的标签实现,发现如下内容 目前的模式
**<pattern>%d{ISO8601} [%-50.50t] %marker [%p] %F:%L %C.%M() %n......MDC: %X %n......NDC: %x %n......MSG: %-70.70m %n</pattern>**
我尝试将其更改为格式
**<pattern>%d{yyyy-MM-dd}-%t-%x-%-5p-%-10c:%m%n</pattern>**
看它是否有效。 瞧!它开始记录正确的时间。 [但重启的情况有所不同,一旦完成重启机器&amp;刚重新启动WLP后,刚刚重启WLP后,我们发现日志时间戳几乎与机器时间戳相似。]
但是,我认为ISO8601格式更适合保留。
你们是否遇到过这样的情况或者知道一些解决方案,除了我试过的那个。 服务器的时区信息 时钟:UTC 时区:美国/芝加哥
log4j使用的版本:log4j-2.x
因此,如果您知道可以自动处理夏令时的任何解决方案,并且同步显示正确的时间,那么。到当前系统时间或者最新的log4j版本中是否有任何修复,如果有,请通知
谢谢