I've been trying to add http headers under a header object and I cant seem to get it working how I want it to with the json template layout. The below method works, but it also adds all elements in the MDC.
"headers": {
"$resolver": "mdc",
},
ThreadContext.put("Host", request.getRemoteHost);
ThreadContext.put("Method", request.getMethod);
I can see in the docs that LOG4J Map Resolver Template but I cant figure out how to use it. It looks like it referencing an object, but I cant pass an object to the TheadContext?
Desired output
{
"timestamp": "2023-10-27T17:00:00.000Z",
"level" "INFO",
"headers" : {
"host": "localhost",
"method": "POST"
},
"logger": "my_logger"
}
I can create a MapMessage and parse it to the log()
The following template should get the job done:
{
"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"
}
}