使用默认日志记录器设置并使用lombok的@Slf4j
的Sping Boot 应用程序
打印日志,如{"timestamp":"2020-02-26T11:25:57.485-05:00" ..........}
显示的时间11:25为EST或纽约时区
我们如何将其更改为UTC时区的日志时间戳?
我试过设置logging: pattern: dateformat: yyyy-MM-dd HH:mm:ss.SSS, UTC
同时使用以下命令设置JVM级别timzone@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'
5条答案
按热度按时间qfe3c7zg1#
slf 4j文档中描述的您遇到的问题
在检查日期格式后,我注意到日期格式
由于某种原因无法工作
但如果您使用控制台配置,它将工作
请注意,撇号应该只出现在日期格式上,而不出现在时区上,因为time sone是slf 4j日期格式解析器函数的第二个参数。
如slf 4j文档中所述:
常见错误-假设逗号','字符被解释为参数分隔符,则模式HH:mm:ss,SSS将被解释为模式HM:mm:ss和时区SSS。如果希望在日期模式中包含逗号,则只需将该模式括在引号中。例如,%date{“HH:mm:ss,SSS”}。
emeijp432#
因此,提供的答案似乎不起作用。但以下格式有效:
%date{“年-月-日时:分:秒.SSSZ”}{美洲/丹佛}
mqxuamgl3#
下面的一个工作为我从UTC到CDT的变化。
%date{“yyyy-MM-dd时:分:秒.SSSZ”,“美洲/芝加哥”}
qojgxg4l4#
使用SpringBoot 2.6.6和(默认的)回登录,这对我很有效:
生成的时间戳如下所示:
2022-04-27T13:41:38,500Z
iyfamqjs5#
我通过添加
{GMT+x}
更改了我的Spring Boot 应用程序日志时区,例如:({GMT+0}
)到我的LOG_PATTERN。因为你也使用了logback@slf4j
注解和 Spring Boot 它应该工作。