Как заставить Logback использовать конфигурацию регистрации из jar для классов, определенных в этом jar? - PullRequest
0 голосов
/ 01 февраля 2019

У меня есть пакет jar с классами, которые используют Logger.Этот jar добавлен в приложение как зависимость.У меня есть несколько logback-test.xml файлов.Первый файл определен в моем приложении, второй - в jar.В случае, если класс из jar использует регистратор с именем my-custom-logger, необходимо следовать конфигурации, которая определена во втором файле (который находится в jar).Однако этот конфиг не используется.Приложение всегда использует первый файл конфигурации.Мое приложение работает на Tomcat, поэтому я думаю, что Tomcat отвечает за ведение журнала.

Может кто-нибудь посоветовать, как решить эту проблему?

Первый файл:

<configuration>
    <appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender">
    <encoder>
        <pattern>%date{HH:mm:ss.SSS} %highlight(%-5level) [%cyan(%-40.40logger{39})] %msg %gray(%mdc) %red(%rootException) %n</pattern>
    </encoder>
</appender>

<!-- root -->
<root level="info">
    <appender-ref ref="CONSOLE" />
</root>

Второй файл (из банки):

<configuration>
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
    <layout class="ch.qos.logback.classic.PatternLayout">
        <Pattern>
            %date{EEE dd HH:mm:ss} [specific prefix] [%thread] %-5level %logger{0} - %msg%n
        </Pattern>
    </layout>
</appender>

<logger name="my-custom-logger" level="info" additivity="false">
    <appender-ref ref="STDOUT" />
</logger>

<root level="INFO">
    <appender-ref ref="STDOUT"/>
</root>

1 Ответ

0 голосов
/ 04 февраля 2019

Я предлагаю вам включить второй файл конфигурации (тот, что находится в банке) в первый файл конфигурации (тот, который используется вашим приложением) с помощью тега include.

Ниже приведен пример использования include:

<configuration>
    <include resource="logback-second.xml"/> <!-- here I included the configuration file from jar using it's name
    <appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender">
    <encoder>
        <pattern>%date{HH:mm:ss.SSS} %highlight(%-5level) [%cyan(%-40.40logger{39})] %msg %gray(%mdc) %red(%rootException) %n</pattern>
    </encoder>
</appender>

<!-- root -->
<root level="info">
    <appender-ref ref="CONSOLE" />
</root>
...