Log4j2 でログレベルをプログラム的に変更する 質問する

Log4j2 でログレベルをプログラム的に変更する 質問する

Log4j2のログレベルをプログラム的に変更することに興味があります。構成ドキュメントしかし、そこには何もないようでした。パッケージも調べてみましたがorg.apache.logging.log4j.core.config、そこにも役立つものは何もありませんでした。

ベストアンサー1

簡単な方法:

log4j2 バージョン 2.4 FAQ に従って編集

Log4j Core のクラス Configurator を使用してロガーのレベルを設定できます。しかしConfigurator クラスはパブリック API の一部ではないことに注意してください。

// org.apache.logging.log4j.core.config.Configurator;
Configurator.setLevel("com.example.Foo", Level.DEBUG);

// You can also set the root logger:
Configurator.setRootLevel(Level.DEBUG);

ソース

好ましい方法:

Log4j2 バージョン 2.0.2 で導入された API の変更を反映するように編集されました

ルート ロガー レベルを変更する場合は、次のようにします。

LoggerContext ctx = (LoggerContext) LogManager.getContext(false);
Configuration config = ctx.getConfiguration();
LoggerConfig loggerConfig = config.getLoggerConfig(LogManager.ROOT_LOGGER_NAME); 
loggerConfig.setLevel(level);
ctx.updateLoggers();  // This causes all Loggers to refetch information from their LoggerConfig.

ここLoggerConfig の javadoc です。

おすすめ記事