You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Log4J2 JsonTemplateLayout时间戳格式配置问题求助

Log4J2 JsonTemplateLayout 生成带时区冒号的时间戳配置

问题背景

要生成2020-02-07T13:38:47.098+02:00格式的时间戳(时区偏移含冒号),但使用JsonTemplateLayout时遇到以下问题:

  • 默认配置输出2020-02-07T13:38:47.098+0200(时区无冒号)
  • 指定ISO8601_OFFSET_DATE_TIME_HHCMM枚举格式仍无效
  • 尝试使用对应格式字符串时抛出布局初始化异常

问题根源

  1. Timestamp resolver实际默认行为与文档描述不符,未输出带冒号的时区格式
  2. 不能将Log4J传统的%d{...}语法作为timestamp resolver的format参数值
  3. 自定义格式时错误使用pattern嵌套结构,导致布局初始化失败

正确配置方案

直接在timestamp resolver中用format字段指定Java DateTimeFormatter兼容的格式字符串,注意毫秒部分用.分隔,格式字符串为yyyy-MM-dd'T'HH:mm:ss.SSSXXX:

修改你的log4j2.json模板中的timestamp配置:

"timestamp": {
  "$resolver": "timestamp",
  "format": "yyyy-MM-dd'T'HH:mm:ss.SSSXXX",
  "timeZone": "UTC"
}

关键说明

  • XXX是Java DateTimeFormatter的模式,会输出带冒号的时区偏移(如+02:00)
  • 确保Log4J2版本≥2.14.0,低版本对JsonTemplateLayout的格式支持有限
  • 原XML配置无需改动,只要模板文件配置正确即可生效

内容的提问来源于stack exchange,提问作者3AKOBAH

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.25 14:53:33