Tomcat 日志时间不对,通常是时区问题或日志框架配置问题。可以按下面步骤排查和解决:
date
如果服务器时间本身就不对:
ntpdate / timedatectl)java -XshowSettings:properties -version 2>&1 | grep user.timezone
如果时区不对(比如 UTC),Tomcat 日志就会差 8 小时(中国)
catalina.sh / catalina.batLinux(catalina.sh)
JAVA_OPTS="$JAVA_OPTS -Duser.timezone=Asia/Shanghai"
Windows(catalina.bat)
set JAVA_OPTS=%JAVA_OPTS% -Duser.timezone=Asia/Shanghai
重启 Tomcat 生效。
log4j.appender.R.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss}{GMT+8}
<pattern>%d{yyyy-MM-dd HH:mm:ss,Asia/Shanghai}</pattern>
docker exec -it 容器名 date
-e TZ=Asia/Shanghai
或在 Dockerfile:
ENV TZ=Asia/Shanghai
如果你愿意,可以告诉我:
我可以给你精确改法。