1. ホーム
  2. java

[解決済み] Log4j2の設定における "status "とは何ですか?

2023-06-15 06:26:27

質問

私はちょうどlog4j2.xml設定ファイルの調整を終えて、私が本当に理解していない何かを発見しました。それで、何が <Configuration status="SOME_STATUS_HERE"> ?

ほとんどすべての例で : http://logging.apache.org/log4j/2.x/manual/configuration.html Apache のフォークが設定にステータスを追加しました。

例えば、これは最初のものです。

<?xml version="1.0" encoding="UTF-8"?>
<Configuration status="WARN"> <!--status="WARN" - what is this???--> 
 
 <Appenders>
  <Console name="Console" target="SYSTEM_OUT">
   <PatternLayout pattern="%d{HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n"/>
  </Console>
 </Appenders>

 <Loggers>
  <Root level="error">
   <AppenderRef ref="Console"/>
  </Root>
 </Loggers>

</Configuration>

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

ステータスロガーは、log4j2コンポーネントによって内部的に使用されます。設定 status="debug" (または "trace") を設定することで、この内部ロギングがコマンドラインに出力されるようになります。

それは、どのlog4j2プラグインコンポーネントがロードされるか(すべての構成要素はlog4j2プラグインに対応します)、そして、例えばどのアペンダーとロガーが見つかったか、どんなパラメーターがあって、それらがどう組み合わせられるかというような詳細についてのデバッグ情報を表示します。

これは設定の問題をトラブルシューティングするのに便利です。

Log4j 2.9から、システムプロパティである log4j2.debug (値は必要ありません) を使用して、構成ファイルがロードされる前であっても、内部Log4j2状態ロギングをオンにすることができます。バージョン2.9以前では、同じことがシステム・プロパティで達成することができる -Dorg.apache.logging.log4j.simplelog.StatusLogger.level=TRACE .