2012-07-31 1 views
2

У меня проблема с конфигурацией даты сервера и java работает log4j и solr на ubuntu 10.04.Java использует неправильное время/дату в log4j на ubuntu 10.04

Системное время CEST. Вывод команды даты:

# date 
Di 31. Jul 14:05:02 CEST 2012 

но время в логах моего протоколирования приложения с log4j является:

2012-07-31 12:05:02 

я использовать эту строку в моем файле log4j.properties:

log4j.appender.rollingFile.layout.ConversionPattern=%d{ISO8601} %p %t %c - %m%n 

Теперь я строю банку, чтобы проверить время, содержащее в основном две строки кода:

Date date = new Date(System.currentTimeMillis()); 
System.out.println(DateFormat.getDateTimeInstance().format(date)); 

это дает мне ожидаемый неправильный вывод:

# java -jar javaDate.jar 
31.07.2012 12:05:02 

если я использовать параметр виртуальной машины для часового пояса она работает правильно

java -Duser.timezone=Europe/Berlin -jar javaDate.jar 
31.07.2012 14:05:02 

, но если я использую один и тот же параметр для запуска приложения, использование log4j по-прежнему получает неправильные метки времени в моем журнале. Почему ????

+0

В вашей JVM установлено время UTC. –

+1

@ galuano1 да, но почему параметр -Duser.timezone = Europe/Berlin работает для моей тестовой банки, но не для приложения, использующего log4j, и как я могу настроить свой jvm, чтобы всегда использовать системное время? – samy

ответ

2

Если вы используете последнюю версию log4j вы должны быть в состоянии использовать EnhancedPatternLayout, если добавить:

log4j.appender.rollingFile.layout=org.apache.log4j.EnhancedPatternLayout 

к вашей конфигурации и использовать

%d{ISO8601}{Europe/Berlin} 

в макете.

+0

Я изменил строку на log4j.appender.rollingFile.layout.ConversionPattern =% d {ISO8601} {Европа/Берлин}% p% t% c -% m% n , но теперь я получаю ту же неправильную метку времени, но со строкой { Европа/Берлин} прилагается в конце: 2012-07-31 12: 46: 05,163 {Европа/Берлин} INFO main ... – samy

+0

Моя версия 1.2.17, разве это не совсем недавно? – samy

+0

Это должно быть хорошо, я обновлю свой ответ - вспомнил, что вам также нужно использовать другой класс макета ... – MattR

Смежные вопросы