1. ホーム
  2. java

[解決済み] ログバックのルートロギングレベルをプログラムで変更する方法

2022-04-27 19:02:54

質問

以下の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>

さて、特定のイベントが発生したときに、プログラムによってルートロガーのレベルを デバッグ から エラー . 変数の代入は使えないので、コード内で行うことが必須です。

どうすればいいのでしょうか?ありがとうございます。

どのように解決するのですか?

これを試してみてください。

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>