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 です。