up vote 0 down vote favorite
1
share [g+] share [fb]

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

link|improve this question

25% accept rate
What version of Tomcat? – Matt Nov 18 '09 at 18:16
It's version 6.0.20 – Thody Nov 18 '09 at 19:22
feedback

4 Answers

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

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

(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).

link|improve this answer
feedback

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

link|improve this answer
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 '09 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 '09 at 17:21
feedback

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.

link|improve this answer
Nope, the system time has remained the same. I've actually restarted Tomcat several times as well. – Thody Nov 18 '09 at 17:11
feedback

Java has his 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

link|improve this answer
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 '10 at 18:36
feedback

Your Answer

 
or
required, but never shown

Not the answer you're looking for? Browse other questions tagged or ask your own question.