XML構成ファイルを使用していませんが、ロガー構成をプログラムで設定しています。ロガーは正しく機能しますが、以下のコードの最初の行を呼び出すと、構成ファイルが見つからず、デフォルトの構成が使用されることを通知する警告ERROR
メッセージが表示されます。
ただし、プログラムをプログラムで自分で追加するため、プログラムを実行するたびにこのメッセージがコンソールに表示されることは望ましくありません。
メッセージ:
ERROR StatusLogger No log4j2 configuration file found. Using default configuration: logging only errors to the console.
以下のコードを呼び出すと、次のようになります。
LoggerContext context = (LoggerContext) LogManager.getContext(false);
または、最初にルートロガーを取得した場合:
Logger logger = LogManager.getLogger(LogManager.ROOT_LOGGER_NAME);
このメッセージの表示を無効にするために設定できるプロパティはありますか?または別のアプローチ?.
[〜#〜] note [〜#〜]:プロパティを設定してLog4j2 JMXに関する別の通知を無効にしました-Dlog4j2.disable.jmx=true
。しかし、私はこれを見つけることができませんでした。
そのメッセージを表示しないようにするには、次のシステムプロパティを追加します。
-Dorg.Apache.logging.log4j.simplelog.StatusLogger.level=OFF
または、もっと簡単に:
import org.Apache.logging.log4j.Level;
import org.Apache.logging.log4j.status.StatusLogger;
...
StatusLogger.getLogger().setLevel(Level.OFF);
これは、メインクラスで簡単に行うことができます。
static {
StatusLogger.getLogger().setLevel(Level.OFF);
}
コードからlog4j構成を適切に初期化するには、initializeメソッドを実装する必要があります。
ソースコードも提供している以下のページの「構成ファイルなしでコードでlog4j2を構成するにはどうすればよいですか」セクションを確認してください。