LOG4J json-template-layout -添加所有标题

oyt4ldly  于 2023-11-18  发布在  其他
关注(0)|答案(1)|浏览(175)

我一直在尝试在header对象下添加http header,但似乎无法让它按照我希望的json模板布局工作。下面的方法可以工作,但它也添加了MDC中的所有元素。

"headers": {
    "$resolver": "mdc",
  },

个字符
我可以在文档中看到LOG4JMap解析器模板,但我不知道如何使用它。它看起来像是引用一个对象,但我不能传递一个对象到TheadContext?
期望输出

{
 "timestamp": "2023-10-27T17:00:00.000Z",
 "level" "INFO",
 "headers" : {
    "host": "localhost",
    "method": "POST"
 },
 "logger": "my_logger"
}


我可以创建一个MapMessage并将其解析为log()

cbjzeqam

cbjzeqam1#

下面的模板应该可以完成这项工作:

{
  "timestamp": {
    "$resolver": "timestamp",,
    "pattern": {
      "format": "yyyy-MM-dd'T'HH:mm:ss.SSS'Z'",
      "timeZone": "UTC"
    }
  },
  "level": {
    "$resolver": "level",
    "field": "name"
  },
  "headers": {
    "host": {
      "$resolver": "mdc",
      "key": "Host"
    },
    "method": {
      "$resolver": "mdc",
      "key": "Method"
    }
  },
  "logger": {
    "$resolver": "logger",
    "field": "name"
  }
}

字符串

相关问题