温馨提示×

tomcat日志时间不对ubuntu咋办

小樊
37
2026-09-12 11:44:34
栏目: 智能运维

Tomcat 在 Ubuntu 上日志时间不对,90% 是时区问题,不是 Tomcat 本身的 bug。下面按常见情况一步步来:


一、先确认系统时间对不对

date

如果系统时间就不对:

sudo timedatectl set-timezone Asia/Shanghai
sudo apt install -y ntpdate
sudo ntpdate pool.ntp.org

date 看是否正确。


二、确认 Ubuntu 时区

timedatectl

确保是:

Time zone: Asia/Shanghai (CST, +0800)

三、Tomcat 没用系统时间(最常见)

Tomcat 默认用 JVM 时区,不一定是系统时区。

1️⃣ 查看 Tomcat 实际时区

catalina.out 或日志里看到时间差 8 小时,基本就是 JVM 时区不对。

2️⃣ 给 Tomcat 指定时区(推荐)

编辑:

sudo vim /opt/tomcat/bin/setenv.sh

(没有就新建)

加入:

export JAVA_OPTS="$JAVA_OPTS -Duser.timezone=Asia/Shanghai"

保存后重启 Tomcat:

sudo systemctl restart tomcat

./shutdown.sh
./startup.sh

四、log4j / logback 时间不对

如果你是 log4j2 / logback,还要看配置:

logback 示例

<pattern>%d{yyyy-MM-dd HH:mm:ss.SSS, Asia/Shanghai}</pattern>

log4j2 示例

<PatternLayout pattern="%d{yyyy-MM-dd HH:mm:ss.SSS}{Asia/Shanghai}"/>

五、Docker 里的 Tomcat(如果是)

Docker 容器默认 UTC:

docker run -e TZ=Asia/Shanghai ...

或在 Dockerfile:

ENV TZ=Asia/Shanghai

六、快速自检清单 ✅

  • [ ] Ubuntu date 正确
  • [ ] timedatectl 时区正确
  • [ ] Tomcat 加了 -Duser.timezone
  • [ ] 日志框架时区配置正确

如果你愿意,可以把:

  • Tomcat 版本
  • Ubuntu 版本
  • 用的日志框架(log4j / logback / juli)
  • 时间差多少小时

发给我,我可以直接给你精确改法

0