Java Log4j2 PatternLayout将地图值格式化为日期

Java Log4j2 PatternLayout将地图值格式化为日期,java,log4j2,Java,Log4j2,对于log4j2,我使用的是MapMessage。 在地图中,我有一个以日期为值的键。 当使用PatternLayout模式时,是否有一种方法可以像LogEvent date那样以特定格式显示此日期 例如,是否有方法将“myDate”的格式设置为与用于%d的格式类似的格式: 谢谢开箱即用,无法提供格式信息。基本上你有几个选择: 扩展MapMessage以根据需要自定义日期字段的格式 创建一个自定义模式转换器,您可以在其中编写%myDate{“MM-dd-yy HH:MM:ss,SSS”、$${

对于log4j2,我使用的是MapMessage。 在地图中,我有一个以日期为值的键。 当使用PatternLayout模式时,是否有一种方法可以像LogEvent date那样以特定格式显示此日期

例如,是否有方法将“myDate”的格式设置为与用于%d的格式类似的格式:


谢谢

开箱即用,无法提供格式信息。基本上你有几个选择:

  • 扩展MapMessage以根据需要自定义日期字段的格式
  • 创建一个自定义模式转换器,您可以在其中编写%myDate{“MM-dd-yy HH:MM:ss,SSS”、$${map:myDate}
  • 为提供pull请求,以增强PatternConverter以访问具有日期值的第二个参数。这将允许%myDate{“MM-dd-yy HH:MM:ss,SSS”、$${map:myDate}
  • 如果你打算实施第2项,你不妨实施第3项,因为工作几乎是一样的