次の 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>
さて、特定のイベントが発生したときに、ルートロガーのレベルをプログラム的に変更したいと思います。デバッグにエラー変数置換は使用できません。コード内でこれを行うことが必須です。
どうすればいいでしょうか? ありがとうございます。
ベストアンサー1
これを試して:
import org.slf4j.LoggerFactory;
import ch.qos.logback.classic.Level;
import ch.qos.logback.classic.Logger;
Logger root = (Logger)LoggerFactory.getLogger(org.slf4j.Logger.ROOT_LOGGER_NAME);
root.setLevel(Level.INFO);
次のように logback に設定ファイルを定期的にスキャンするように指示することもできます。
<configuration scan="true" scanPeriod="30 seconds" >
...
</configuration>