Я хотел бы иметь возможность динамически изменять уровень фильтрации для одного Appender в LogbackДинамически сменить фильтр для приложения регистрации журналов?
Например, если у меня есть
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
<encoder>
<pattern>%d [%X{traceId}] [%thread] %-5level %logger{36} %marker - %msg%n</pattern>
</encoder>
</appender>
<!-- Root Config -->
<root level="${log_level:-INFO}">
<appender-ref ref="ASYNC-SERVICE"/>
<appender-ref ref="STDOUT"/>
</root>
Как можно во время выполнения изменить Appender STDOUT, чтобы разрешить отладку против Информация?
я могу изменить глобально корневой уровень легко:
def setLogLevel(value: Level, loggerName: String = org.slf4j.Logger.ROOT_LOGGER_NAME) = {
val logger = LoggerFactory.getLogger(loggerName).asInstanceOf[Logger]
logger.setLevel(LogbackLevel.valueOf(value.toString))
}
Но я бы очень хотел, чтобы иметь контроль, на котором Appender получает какой уровень динамически.
Я пытался манипулировать фильтры уровня на appenders, но это, похоже, не делать
Вы когда-нибудь находили решение этого вопроса? Я сижу с тем же вопросом. Я хочу, чтобы уровень корневого регистратора был разрешительным, например. TRACE, а затем за приложение, контролирует, какой уровень регистрируется. Я попробовал очистить и снова добавить фильтры в приложение, но это не сработает. – Will777
@ Will777 см. Мой ответ – devshorts