Как удалить / отключить / переопределить приложение из включенного файла?

Мы используем Spring Boot и включаем org / springframework / boot / logging / logback / base.xml в наш файл logback-spring.xml. Мне нужно переопределить корневой регистратор, чтобы исключить / отключить / переопределить приложения, объявленные во включенном файле, в частности, приложение CONSOLE (ну и удалить приложение FILE).

Я пробовал объявить корневой регистратор в logback-spring.xml с моим собственным приложением CONSOLE, но это только дублирует вывод. Я пробовал объявить пустой корневой регистратор (чтобы установить другой уровень ведения журнала) и новый аппендер с тем же именем, что и включенный ("КОНСОЛЬ"), но это вводит в заблуждение (поскольку корневой регистратор пуст) и все еще не удаляет ПРИЛОЖЕНИЕ ФАЙЛОВ.

Вводящая в заблуждение версия logback-spring.xml

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE configuration>

<configuration scan="true">
    <include resource="org/springframework/boot/logging/logback/base.xml"/>
    <!-- bunch of loggers -->
    <appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender">
        <encoder class="net.logstash.logback.encoder.LogstashEncoder" />
    </appender>
    <root level="ERROR">
    </root>
</configuration>

Я ожидал примерно следующего:

    <include resource="org/springframework/boot/logging/logback/base.xml"/>
    <appender name="CUSTOM-CONSOLE" class="ch.qos.logback.core.ConsoleAppender">
        <encoder class="net.logstash.logback.encoder.LogstashEncoder" />
    </appender>
    <root level="ERROR">
        <appender-ref ref="CUSTOM-CONSOLE"/>
    </root>

И тогда включенные дополнения CONSOLE и FILE не используются.

Или, возможно, повторно объявите некоторые фиктивные / неработающие дополнения CONSOLE и FILE, чтобы переопределить включенную конфигурацию.

РЕДАКТИРОВАТЬ: Мой вопрос касается приложений, унаследованных от включенного файла, поэтому предложения в Могу ли я отключить appender в логбэк? действительно не решает проблему.


person Aivaras    schedule 11.10.2019    source источник
comment
Возможный дубликат Могу ли я отключить приложение при входе в систему?   -  person Krishna    schedule 14.10.2019
comment
Я обновил свой вопрос, чтобы устранить этот возможный дубликат.   -  person Aivaras    schedule 17.10.2019


Ответы (1)


Кажется, нет способа удалить / переопределить приложение. Однако согласно этому http://logback.qos.ch/codes.html#earlier_fa_collision

Если FileAppender / RollingFileAppender, определенный ранее, имеет тот же параметр File, что и текущий appender, то эти два приложения находятся в конфликте, поскольку экземпляры FileAppender не могут совместно использовать одну и ту же цель вывода. Чтобы предотвратить потерю данных, текущее приложение не запускается. Убедитесь, что у каждого приложения есть уникальный параметр «Файл».

можно отключить приложение. Однако этот способ - скорее взлом, чем правильное решение.

person Andrey    schedule 17.12.2019