Debian 上 Tomcat 日志时间不对,通常是时区问题,不一定是系统时间错。可以按下面步骤排查和解决。
date
timedatectl
如果系统时间本身就不对:
# 设置时区(例如上海)
sudo timedatectl set-timezone Asia/Shanghai
# 同步时间
sudo apt install -y ntpdate
sudo ntpdate pool.ntp.org
Tomcat 不会自动用系统当前时区,而是看 JVM 的时区。
java -XshowSettings:properties -version 2>&1 | grep user.timezone
如果显示不是 Asia/Shanghai,那就是问题来源。
CATALINA_OPTS(推荐)编辑:
/etc/default/tomcat9
# 或
/etc/default/tomcat10
添加:
CATALINA_OPTS="-Duser.timezone=Asia/Shanghai"
然后重启:
sudo systemctl restart tomcat9
setenv.sh 里加sudo nano /opt/tomcat/bin/setenv.sh
加入:
export CATALINA_OPTS="$CATALINA_OPTS -Duser.timezone=Asia/Shanghai"
如果是 应用日志时间不对,而 catalina.out 正常:
<pattern>%d{yyyy-MM-dd HH:mm:ss,Asia/Shanghai} %-5level ...</pattern>
<PatternLayout pattern="%d{yyyy-MM-dd HH:mm:ss}{Asia/Shanghai} %-5p ..."/>
重启后看日志:
tail -f /var/log/tomcat9/catalina.out
Debian + Tomcat 日志时间不对,90% 是 JVM 时区没设,加
-Duser.timezone=Asia/Shanghai基本就好了。
如果你愿意,可以告诉我:
我可以给你更精确的改法。