Мы используем Spring Boot и включаем org / springframework / boot / logging / logback / base.xml в наш файл logback-spring.xml. Мне нужно переопределить корневой логгер, чтобы исключить / отключить / переопределить аппендеры, объявленные во включаемом файле, в частности аппендикс CONSOLE (ну, и удалить аппендир FILE).
Я пытался объявить корневой логгер в logback-spring.xml с моим собственным приложением CONSOLE, но это только дублирует вывод. Я попытался объявить пустой корневой регистратор (чтобы установить другой уровень ведения журнала) и новый appender с тем же именем, что и включенный («CONSOLE»), но это вводит в заблуждение (поскольку корневой регистратор пуст) и по-прежнему не удаляетФАЙЛ appender.
Вводящая в заблуждение версия 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 и FILEappenders не используются.
Или, возможно, повторно объявляют некоторые фиктивные / no-op CONDELE и FILE-аппендеры для переопределения включенной конфигурации.
EDIT: Мой вопрос касается дополнений, унаследованных от включенного файла, поэтому предложенияв Могу ли я отключить appender при входе в систему? на самом деле не решает проблему.