'Quarkus - logback.xml: cannot add jar
Recently I found this Quarkus extension that allows to use logback.xml for configuring the logger (JBoss LogManager is still the implementation).
I've added the required dependencies on my pom.xml
<dependencyManagement>
<dependencies>
<dependency>
<groupId>io.quarkus</groupId>
<artifactId>quarkus-bom</artifactId>
<version>${quarkus.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
# ...
<dependencies>
# ...
<dependency>
<groupId>io.quarkiverse.logging.logback</groupId>
<artifactId>quarkus-logging-logback</artifactId>
</dependency>
<dependency>
<groupId>net.logstash.logback</groupId>
<artifactId>logstash-logback-encoder</artifactId>
<version>${logstash.version}</version>
</dependency>
<dependency>
<groupId>org.codehaus.janino</groupId>
<artifactId>janino</artifactId>
<version>${janino.version}</version>
</dependency>
# ...
</dependencies>
and the logback.xml in src/main/resources, that simply includes the configuration from another xml file inside a dependency
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<include resource="logger.xml" />
</configuration>
But I'm getting this strange warning:
WARN in ch.qos.logback.core.joran.util.ConfigurationWatchListUtil@4b06f969 - Null ConfigurationWatchList. Cannot add jar:file:///C:/Users/dems98/.m2/repository/com/dems98/1.8/test.jar!/logger.xml
and the Quarkus application does not log anything.
the content of logger.xml works if defined directly inside logback.xml
<?xml version="1.0" encoding="UTF-8"?>
<included>
<conversionRule conversionWord="iso8601nano"
converterClass="com.dems98.test.log.converter.Iso8601NanoConverter" />
<appender name="STDOUT"
class="ch.qos.logback.core.ConsoleAppender">
<filter class="ch.qos.logback.classic.filter.ThresholdFilter">
<level>INFO</level>
</filter>
<encoder>
<pattern>%d{yyyy-MM-dd'T'HH:mm:ss.SSSZ} [%t] %-5level %logger{36} - %.-100000msg%n</pattern>
</encoder>
</appender>
<if condition='"${LOG_DESTINATION:-FILE}".equals("FILE")'>
<then>
<appender name="ROLLING_FILE_SPRING_BOOT"
class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>/var/log/server/${NAME}.log</file>
<rollingPolicy
class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
<fileNamePattern>/var/log/%d{yyyy-MM-dd_HH, UTC}.${NAME}.server-log.%i.zip</fileNamePattern>
<maxFileSize>100MB</maxFileSize>
<maxHistory>3</maxHistory>
<totalSizeCap>300MB</totalSizeCap>
</rollingPolicy>
<filter class="ch.qos.logback.classic.filter.ThresholdFilter">
<level>INFO</level>
</filter>
<encoder>
<pattern>%d{yyyy-MM-dd'T'HH:mm:ss.SSSZ} [%t] %-5level %logger{36} - %.-100000msg%n</pattern>
</encoder>
</appender>
</then>
</if>
<if condition='"${LOG_DESTINATION:-FILE}".equals("CONSOLE")'>
<then>
<appender name="ROLLING_FILE_APP"
class="ch.qos.logback.core.ConsoleAppender">
<encoder class="net.logstash.logback.encoder.LoggingEventCompositeJsonEncoder">
<providers>
<pattern>
<omitEmptyFields>true</omitEmptyFields>
<pattern>
{
"timestamp": "%iso8601nano{UTC}",
"correlation-id": "%mdc{correlation-id}",
"message": "%.-100000msg%replace(%n%.-100000ex){'^\\s+$$',''}",
"level": "%level",
"version": "${VERSION}",
"class": "%logger",
"thread": "%t"
}
</pattern>
</pattern>
</providers>
</encoder>
</appender>
</then>
<else>
<appender name="ROLLING_FILE_APP"
class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>/var/log/${NAME}.log</file>
<rollingPolicy
class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
<fileNamePattern>/var/log/%d{yyyy-MM-dd_HH, UTC}.${NAME}.log.%i.zip</fileNamePattern>
<maxFileSize>100MB</maxFileSize>
<maxHistory>3</maxHistory>
<totalSizeCap>300MB</totalSizeCap>
</rollingPolicy>
<encoder class="net.logstash.logback.encoder.LoggingEventCompositeJsonEncoder">
<providers>
<pattern>
<omitEmptyFields>true</omitEmptyFields>
<pattern>
{
"timestamp": "%iso8601nano{UTC}",
"correlation-id": "%mdc{correlation-id}",
"message": "%.-100000msg%replace(%n%.-100000ex){'^\\s+$$',''}",
"level": "%level",
"version": "${VERSION}",
"class": "%logger",
"thread": "%t"
}
</pattern>
</pattern>
</providers>
</encoder>
</appender>
</else>
</if>
<logger name="com.test" level="${LOG_LEVEL:-INFO}" additivity="false">
<appender-ref ref="ROLLING_FILE_APP" />
</logger>
<root level="DEBUG">
<appender-ref ref="STDOUT" />
<if condition='"${LOG_DESTINATION:-FILE}".equals("FILE")'>
<then>
<appender-ref ref="ROLLING_FILE_SPRING_BOOT" />
</then>
</if>
</root>
</included>
I've searched for a solution but did not find anything. How can I solve?
Thanks in advance.
Sources
This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.
Source: Stack Overflow
Solution | Source |
---|