#json #slf4j #apache-servicemix #logstash-logback-encoder
#json #slf4j #apache-servicemix #logstash-обратный журнал-кодировщик
Вопрос:
Я использую pax-logging-logback и logstash-logback-encoder для входа в формате json в logstash. Теперь я хочу добавить дополнительные поля в вывод JSON с помощью маркеров из logstash-logback-encoder.
<?xml version="1.0" encoding="UTF-8"?>
<appender name="st"
class="net.logstash.logback.appender.LogstashTcpSocketAppender">
<destination>127.0.0.1:6000</destination>
<encoder class="net.logstash.logback.encoder.LoggingEventCompositeJsonEncoder">
<providers>
<context/>
<version/>
<logLevel/>
<loggerName/>
<message/>
<logstashMarkers/>
<stackTrace/>
</providers>
</encoder>
</appender>
<root level="INFO">
<appender-ref ref="st" />
</root>
logger.info(Markers.append("msg","msg"),"MSG!");
LOGSTASHTCPSOCKET Appender отправляет json в logstash, но
без дополнительных полей («сообщение»:»msg»). Когда я пытаюсь использовать тот же код с простым проектом maven, LOGSTASHTCPSOCKET Appender добавляет поля в json.
service mix не отображает никаких ошибок, когда метод `
logger.info(Markers.append("msg","msg"),"MSG!");
является исполняемым.
Комментарии:
1. Привет @mForest, ты нашел какое-нибудь решение для его проблемы? Нашим чем-нибудь вы могли бы поделиться, чтобы помочь?
2. Привет @LucasPires, в тот раз я не смог найти никакого решения, поэтому я использовал MDC, например, MDC.put(«request_id», «1»); log.info («Протестируйте Log4j с помощью MDC»); MDC.remove(«request_id»); Это было 3 года назад, но, насколько я помню, в json добавлено дополнительное поле.
3. также я помню, что проблема была связана с зависимостями logback. logstash-logback-encoder зависит от logback, к сожалению, servismix использовал неправильную версию logback.
4. Большое вам спасибо @mForest за ответ.