Java usa hora/fecha incorrecta en log4j en ubuntu 10.04

tengo un problema con la configuración de la fecha de mi servidor y java ejecutando log4j y solr en ubuntu 10.04.

La hora del sistema es CEST. salida del comando de fecha:

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

pero el tiempo en los registros de registro de mi aplicación con log4j es:

2012-07-31 12:05:02

uso esta línea en mi archivo log4j.properties:

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

Ahora construyo un jar para probar el tiempo que contiene básicamente dos líneas de código:

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

esto me da el resultado incorrecto esperado:

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

si uso el parámetro de la máquina virtual para la zona horaria, funciona correctamente

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

pero si uso el mismo parámetro para iniciar la aplicación que está usando log4j, todavía obtengo las marcas de tiempo incorrectas en mi registro. ¿¿¿¿por qué????

preguntado el 31 de julio de 12 a las 13:07

Su JVM está configurado para mostrar la hora UTC. -

@galuano1 sí, pero ¿por qué el parámetro -Duser.timezone=Europe/Berlin funciona para mi jar de prueba pero no para la aplicación que usa log4j, y cómo puedo configurar mi jvm para usar siempre la hora del sistema? -

1 Respuestas

Si está utilizando una versión reciente de log4j, debería poder usar EnhancedPatternLayout si agrega:

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

a su configuración y uso

%d{ISO8601}{Europe/Berlin}

en su diseño.

Respondido 31 Jul 12, 14:07

cambié la línea a log4j.appender.rollingFile.layout.ConversionPattern=%d{ISO8601}{Europa/Berlín} %p %t %c - %m%n pero ahora obtengo la misma marca de tiempo incorrecta pero con la cadena {Europa/ Berlín} adjunto al final: 2012-07-31 12:46:05,163{Europa/Berlín} INFO principal... - samy

mi versión es 1.2.17, ¿no es lo suficientemente reciente? - samy

Eso debería estar bien, actualizaré mi respuesta; recordé que también necesita usar una clase de diseño diferente ... - MattR

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.