Tomcat 访问日志记录未来日期

Tomcat access log records future date

Tomcat 访问日志将时间戳打印为“30/Dec/2020”,而不是昨天的“30/12/2019”。我们在 AccessLogValve 中使用时间戳格式 “[%{dd/MMM/YYYY HH:mm:ss.SSS}t]”

这一直是我们项目的格式,一直无缝工作到 12 月 29 日,突然间它从 29 日开始打印 2020 年。我们正在使用 openjdk version "1.8.0_202"Apache Tomcat/8.5.50

非常感谢任何帮助!

日历年与基于周的年份

YYYY 表示基于周的年份。对于日历年,使用 yyyy

做这些工作时请仔细阅读文档。

ISO 8601

我建议使用标准 ISO 8601 格式进行所有日志记录。对于仅限日期的值,这将是 yyyy-MM-dd 模式。

UTC

对于任何给定时刻,全球各地的日期因时区而异。例如,2020 年新年在日本东京比在印度加尔各答早了几个小时,在美国俄亥俄州托莱多甚至晚了几个小时。

所以你应该指定你想要感知日期的时区。如果省略,则隐式应用 JVM 当前的默认时区。最好明确指定 desired/expected 时区。我不记得如何在 Tomcat 中执行此操作,并且现在没有可用的文档,因此您必须查找它。

通常最好使用 UTC(零小时-分钟-秒的偏移量)进行日志记录。