Я использую Logback и Logstash в приложении SpringBoot.LogBack - LogStash - добавление свойств в журнал и отправка их в Logstash
В logback.xml У меня есть свойство с именем службы, и как:
<configuration>
<include resource="org/springframework/boot/logging/logback/defaults.xml" />
<include resource="org/springframework/boot/logging/logback/console-appender.xml" />
<property name="spring.application.name" calue="service"/>
<appender name="stash" class="net.logstash.logback.appender.LogstashTcpSocketAppender">
<destination>localhost:9600</destination>
<encoder class="net.logstash.logback.encoder.LogstashEncoder"/>
</appender>
<root level="INFO">
<appender-ref ref="CONSOLE" />
<appender-ref ref="stash" />
</root>
</configuration>
конф файл Logstash, как:
input{ tcp{
port=> 9600
host=>logstash
}
}
filter {
grok {
match => {
"message" =>
"^%{TIMESTAMP_ISO8601:timestamp}\s+%{LOGLEVEL:level}\s+%{NUMBER:pid}\s+---\s+\[\s*%{USERNAME:thread}\s*\]\s+%{JAVAFILE:class}\s*:\s*%{DATA:themessage}(?:\n+(?<stacktrace>(?:.|\r|\n)+))?$"
}
}
date {
match => [ "timestamp" , "yyyy-MM-dd HH:mm:ss.SSS" ]
}
mutate {
remove_field => ["@version"]
add_field => {
"appid" => "%{[path]}"
}
add_field => {
"levell" => "level"
}
add_field => {
"mensage" => "message"
}
}
}
output{
elasticsearch {
hosts => ["elasticsearch"]
index => "indice"
}
stdout{}
}
Как я могу сделать, чтобы добавить свойство имени приложения из файла журнала в качестве поля?
Спасибо @roby! Свойство появляется в журнале, но в поле «сообщение». Я хочу иметь свойство как поле, чтобы фильтровать журналы с помощью Kibana. Вы знаете, как это сделать? Я попытался поместить это в файл журнала logastash, но это не помогло: 'add_field => { " service "=> [" @ spring.application.name "] }' – AleGallagher