У меня есть эти файлы зависимостей 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.
В чем проблема?