ServiceMix, pax-logging-logback, logstash-logback-encoder

#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 за ответ.