Как изменить имена стандартных полей в logback LogstashSocketAppender?
В моем бэкэнде Spring: стандартные имена полей журнала: "message" и "level", а файл logback.xml прекрасно работает:
<?xml version="1.0" encoding="UTF-8"?>
<configuration scan="true" scanPeriod="5 seconds">
<property resource="application.properties"/>
<appender name="stdout" class="ch.qos.logback.core.ConsoleAppender">
<encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
<Pattern>[%d{yyyy-MM-dd HH:mm:ss.SSS}] <%-5level> [Backend] <%thread> &msg%n
</Pattern>
</encoder>
</appender>
<root level="DEBUG">
<appender-ref ref="stdout"/>
</root>
</configuration>
Вопрос: Как изменить стандартные имена полей журнала с помощью LogstashSocketAppender с "message" на "log-message"?
Я уже пытаюсь добавить этот appender:
<appender name="stash" class="net.logstash.logback.appender.LogstashSocketAppender">
<host>localhost</host>
<port>6002</port>
<customFields>
{
"timestamp":"%d{yyyy-MM-dd HH:mm:ss.SSS}",
"component": "Backend",
"log-message": "%msg",
"log-level": "%-5level"
}</customFields>
</appender>
но мое излияние выглядит так:
{
"message":"correct log message here"
"log-message":"%msg" <--- BAD VALUE
1 ответ
Я уже сделал это с помощью шаблона:
<appender name="stash" class="net.logstash.logback.appender.LogstashSocketAppender">
<host>${logstash.host}</host>
<port>${logstash.port}</port>
<provider class="net.logstash.logback.composite.loggingevent.LoggingEventPatternJsonProvider">
<pattern>
{
"log-message": "%msg",
"component": "Backend",
"timestamp": "%d{yyyy-MM-dd HH:mm:ss.SSS}",
"log-level": "%-5level",
"thread-id": "%thread"
}
</pattern>
</provider>
</appender>
Редактировать: Конечно, тогда вы должны создать grok > match
отфильтруйте ваш logstash, чтобы прослушать этот шаблон.