1. ホーム
  2. java

[解決済み] log4jのログレベルを動的に変更する

2022-06-08 19:01:12

質問

私がアプリケーションを再展開する必要がないように、動的にlog4jログ・レベルを変更するための異なるアプローチは何ですか。変更はそれらの場合に永久的であるか。

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

ログ レベルを変更するのは簡単です。設定の他の部分を変更すると、より深いアプローチが必要になります。

LogManager.getRootLogger().setLevel(Level.DEBUG);

のライフサイクルを通じて永続的に変更されます。 Logger . 実行時にレベルを設定してもレベルの変更は維持されないため、再初期化時に設定が読み込まれて使用されます。

UPDATEです。 あなたがLog4j 2を使用している場合、あなたは以下の呼び出しを削除する必要があります。 setLevel につき ドキュメント にあるように、実装クラスによって実現することができます。

logger.setLevel()または同様のメソッドへの呼び出しは API ではサポートされていません。アプリケーションはこれらを削除する必要があります。同等な機能は Log4j 2実装クラスで提供されるが、アプリケーションをLog4j 2内部での変更の影響を受けやすいままにしておくかもしれない。 アプリケーションをLog4j 2内部での変更に影響されやすくします。