Мое приложение отправляет события журнала в logstash с помощью приложения-сокета log4j2 и JsonLayout. В kibana я хочу показать все другие свойства в формате json, кроме stacktrace.
log4j2.xml configuration
<Socket host="localhost" name="mySocketAppender" port="9955">
<JsonLayout compact="true" eventEol="true" includeStacktrace="true" properties="true
</Socket>
logstash.config
input {
tcp {
port => 9955
codec => json
}
}
filter {
date {
match => [ "timeMillis", "UNIX_MS" ]
}
}
output {
elasticsearch { hosts => ["localhost:9200"]}
}
Я ожидаю вывод как
Caused by: java.lang.NullPointerException
at java.net.URLEncoder.encode(URLEncoder.java:204) ~[?:1.8.0_151]
at com.mytestClass.service.test.generateURL(test.java:1922) ~[abc-xyz.jar:?]
at com.mytestClass.service.test.publishURLToUsers(test.java:1847) ~[abc-xyz.jar:?]
at com.mytestClass.service.test..publishURL(test.java:1809) ~[abc-xyz.jar:?]
но Kibana показывает вывод для трассировки стека как:
thrown.cause.extendedStackTrace {
"exact": false,
"location": "?",
"class": "java.net.URLEncoder",
"file": "URLEncoder.java",
"version": "1.8.0_151",
"method": "encode",
"line": 204
},
{
"exact": false,
"location": "abc-xyz.jar",
"class": "com.mytestClass.service.test",
"file": "test.java",
"version": "?",
"method": "generateURL",
"line": 1922
},
{
"exact": false,
"location": "abc-xyz.jar",
"class": "com.mytestClass.service.test",
"file": "test.java",
"version": "?",
"method": "publishURLToUsers",
"line": 1847
},
{
"exact": false,
"location": "abc-xyz.jar",
"class": "com.mytestClass.service.test",
"file": "test.java",
"version": "?",
"method": "publishURL",
"line": 1809
}
Какие изменения следует внести в конфигурацию logstash, чтобы все остальные свойства в событии журнала отображались в формате json, но не в стеке трассировки исключений.