Spring Boot Slf4j меняет временную метку журнала, чтобы использовать часовой пояс UT C - PullRequest
1 голос
/ 26 февраля 2020

Spring boot app с настройками регистратора по умолчанию и использованием lombok @Slf4j

Печать журналов, например {"timestamp":"2020-02-26T11:25:57.485-05:00" ..........} Отображение времени 11:25 в EST или NewYork timezone

Как мы можем изменить это войти в метку времени в UT C часовой пояс?

Я попытался установить

logging: pattern: dateformat: yyyy-MM-dd HH:mm:ss.SSS, UTC

Также установить Timzone уровня JVM с помощью

@PostConstruct TimeZone.setDefault(TimeZone.getTimeZone("UTC"));

и также пытались настроить в application.yaml
logging: pattern: console: '%d{"yyyy/MM/dd HH:mm:ss,SSS,UTC"} [%p] [%t] %M\(%F:%L\) - %msg%n'

1 Ответ

0 голосов
/ 27 февраля 2020

Проблема, которая возникает с вами, описана в slf4j документах

После проверки формата даты я заметил, что действительно формат даты

logging:
   pattern:
     dateformat: you date format

не работает по какой-то причине

Но если вы будете использовать конфигурацию консоли, она будет работать

logging:
  pattern:
    console: '%date{"yyyy/MM/dd HH:mm:ss,SSS", UTC} [%p] [%t] %M\(%F:%L\) - %msg%n'

Обратите внимание, что апострофы должны быть только в формате даты, а не в часовом поясе, потому что время sone является вторым параметром функции синтаксического анализатора формата даты slf4j.

Как упоминалось в документации slf4j:

COMMON ERROR - Учитывая, что запятая ',' интерпретируется как разделитель параметров, шаблон HH: мм: сс, SSS будет интерпретироваться как шаблон HM: мм: сс и часовой пояс SSS. Если вы хотите sh включить запятую в шаблон даты, просто заключите шаблон в кавычки. Например,% date {"ЧЧ: мм: сс, SSS"}.

...