My use case is that I need to print access logs of tomcat server in spring boot application. Logs should be in JSON format with custom field names. Like this:
{
"_type": "access",
"_timestamp": "2020-12-14 09:04:51.124",
"_url":"/api/v2/activities/search",
"_method": "GET",
"_response_code": 200,
"_processing_time_in_ms":0.004,
"referer":"https://google.com",
"user_agent":"XYZ",
"_level": "info
}
Now I am using net.logstash.logback.encoder.AccessEventCompositeJsonEncoder encoder in logback.xml appending to console.
I have successfully got the values of other fields such as _response_code : "%statsCode by doing this.
But ,How can I access referer from request_headers object directly here in my custom json object?
Use logstash-logback-encoder's pattern provider along with logback's conversion word for request headers (
%i
or%header
).The example given in the logstash-logback-encoder's README.md (linked above) shows how to do exactly that. Copied here for reference...