Eu tenho o seguinte arquivo logback.xml:
<configuration debug="true">
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
<encoder>
<pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</pattern>
</encoder>
</appender>
<root level="debug">
<appender-ref ref="STDOUT" />
</root>
</configuration>
Agora, após a ocorrência de um evento específico, desejo alterar programaticamente o nível do criador de logs raiz de depuração para erro . Não posso usar substituição de variável, é obrigatório fazer isso dentro do código.
Como pode ser feito ? Obrigado.
Presumo que você esteja usando o logback (do arquivo de configuração).
No manual de logback , vejo
Logger rootLogger = LoggerFactory.getLogger(org.slf4j.Logger.ROOT_LOGGER_NAME);
Talvez isso possa ajudá-lo a alterar o valor?
fonte
usando o logback 1.1.3, tive que fazer o seguinte (código Scala):
fonte
Eu acho que você pode usar o MDC para alterar o nível de log programaticamente. O código abaixo é um exemplo para alterar o nível de log no thread atual. Essa abordagem não cria dependência para a implementação de logback (a API SLF4J contém MDC).
fonte
Conforme apontado por outros, você simplesmente cria
mockAppender
e depois cria umaLoggingEvent
instância que essencialmente escuta o evento de log registrado / acontece dentromockAppender
.Aqui está como fica em teste:
fonte
Eu pareço ter sucesso fazendo
Então, para obter um registro detalhado do netty, o seguinte foi feito
fonte