Логбэк не работает?? JSON не генерируется

У меня есть эти файлы зависимостей Maven:

<dependency>
    <groupId>org.slf4j</groupId>
    <artifactId>slf4j-api</artifactId>
    <version>1.7.25</version>
</dependency>
<dependency>
    <groupId>ch.qos.logback</groupId>
    <artifactId>logback-classic</artifactId>
    <version>1.2.3</version>
</dependency>
<dependency>
    <groupId>net.logstash.logback</groupId>
    <artifactId>logstash-logback-encoder</artifactId>
    <version>6.1</version>
</dependency>

а logback.xml помещается в папку ресурсов.

Logback.xml (имена классов в две строки из-за форматирования Stackoverflow):

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
  <conversionRule conversionWord="stacktrace"
    converterClass="net.logstash.logback.stacktrace.
    ShortenedThrowableConverter" />
  <appender name="JSON" class="ch.qos.logback.core.ConsoleAppender">
    <encoder 
      class="net.logstash.logback.encoder.
      LoggingEventCompositeJsonEncoder">
      <providers>
        <pattern>
          <pattern>
            {
            "timestamp": "%date{yyyy-MM-dd HH:mm:ss.SSS}",
            "level": "%level",
            "msg": "%msg",
            "stacktrace": "%stacktrace"
            }
          </pattern>
         </pattern>
     </providers>
   </encoder>
 </appender>
 <root level="info">
   <appender-ref ref="JSON"/>
 </root>
</configuration>

Журнал такой:

14:34:23,782 INFO  [x.y.Logger] (default task-15) Hello world!

Журнал не выводится в формате JSON. Почему?

Я думаю, Logback вообще работает. Как Logback запускается при запуске приложения? У меня нет строк кода, вызывающих это. Я читал, что Logback сканирует logback.xml, но как я узнаю, что он работает??

Logback хорошо работает в новых загрузочных приложениях Spring, но это приложение является старым приложением JEE.

В чем проблема?


person Sam boy    schedule 06.09.2019    source источник


Ответы (2)


попробуйте эту конфигурацию кодировщика:

<encoder class="net.logstash.logback.encoder.LogstashEncoder">
  <jsonGeneratorDecorator class="net.logstash.logback.decorate.PrettyPrintingJsonGeneratorDecorator"/>
    <timestampPattern>yyyy-MM-dd HH:mm:ss.SSS</timestampPattern>
    <providers>
        <timestamp/>
        <logLevel/>
        <message/>
        <stacktrace/>
    </providers>
</encoder>
person Kevorkian    schedule 06.09.2019

я должен был добавить

jboss-deployment-structure.xml в EAR META-INF.

Содержимое файла:

<?xml version="1.0" encoding="UTF-8"?>  
<jboss-deployment-structure>  
  <deployment>  
    <exclusions>
        <module name="org.slf4j" />
        <module name="org.slf4j.impl" />
    </exclusions>
  </deployment>  
</jboss-deployment-structure>
person Sam boy    schedule 26.09.2019