I using logstash-logback-encoder
6.3. I want write structured arguments in Kibana.
My code:
Map<String, String> extractHeaders = ...
log.debug(Markers.append("http", Map.of("url", request.getUrl(), "headers", extractHeaders)),"Some message");
And in Kibana I see this:
But why? Why Kibana flattened json keys? I expect this view:
"fields": {
....
"http": {
"headers": {
"X-Auth-Token": "ew0KICAiY2xpZW50SWQiIDog",
.....
},
"url": "some url"
}
....
}
How I can put nested object?
My logback.xml:
<appender name="STASH" class="net.logstash.logback.appender.LogstashTcpSocketAppender">
<destination>${logstashHost}:${logstashPort}</destination>
<encoder class="net.logstash.logback.encoder.LogstashEncoder">
<provider class="net.logstash.logback.composite.loggingevent.ArgumentsJsonProvider" />
</encoder>
</appender>