1

For some reason, the timestamp in my Tomcat logs is off. The system clock is correct, and set to PST, but the Tomcat logs appear to be using GMT. I haven't been able to find this setting anywhere...hoping someone can shed some light.

Thanks

2
  • What version of Tomcat?
    – Matt
    Nov 18, 2009 at 18:16
  • It's version 6.0.20
    – Thody
    Nov 18, 2009 at 19:22

6 Answers 6

4

The JVM might have the wrong timezone set as a default.

Add a JVM option -Duser.timezone=US/Pacific (use the JAVA_OPTS property)

(also do a ps | grep java to look at the JVM command line and see if this option is already set for UTC, perhaps by a configuration setting or environment variable).

1

Most logging systems default to UTC. This keeps them readable across timezones.
It also allows you to mix logs from different timezones where applicable.

2
  • I suppose that makes sense, although having Apache and Tomcat logging with different timezones, and the application correcting to yet another timezone makes troubleshooting a pain.
    – Thody
    Nov 18, 2009 at 17:12
  • @Thody, I agree with that. Which is why everything should be in UTC and can be externally converted if necessary. Things get into trouble once timezones are introduced.
    – nik
    Nov 18, 2009 at 17:21
0

Has the timezone of the system changed since Tomcat was started? I've had problems where Tomcat picks up the timezone when it first starts, and then refuses to accept a new reality until you kill it and start again.

1
  • Nope, the system time has remained the same. I've actually restarted Tomcat several times as well.
    – Thody
    Nov 18, 2009 at 17:11
0

Java has its own implementation of the tzdata.
For instance, in my ubuntu servers, java's timezone definitions are in /usr/lib/jvm/java-6-sun-1.6.0.14/jre/lib/zi
While the system one are under /usr/share/zoneinfo/

You can specify which timezone java should use by passing the option -Duser.timezone=$TZ where $TZ is the relative path to the timezone file under zi
for example: -Duser.timezone=Etc/GMT+3

1
  • 2
    It's better to use the named time zone rather than GMT+3. This allow for proper handling daylight savings time. In other words, use US/Pacific instead of GMT-8.
    – Will Glass
    Jan 1, 2010 at 18:36
0

It appears that Java uses the value in /etc/sysconfig/clock as the timezone value when starting up. On my system that was:

ZONE="America/New_York"

Change that value to what you want and restart tomcat.

0

I had a similar problem due to -Duser.timezone=UTC
You can expose this out with ps -edf | grep catalina if using Linux

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .