0

現在、比較的大きなプロジェクトの log4j 構成を微調整しています。現在、ログ エントリを作成できるすべての場所のログ レベルをまだ構成していません。

他のアペンダーが構成されていないすべてのメッセージをログに記録するために、log4j に何らかのフォールバック アペンダーを持たせたいと考えています。たとえば、次のようなログ メッセージがあるとします。

ログイン先: abcd:WARN

レベルINFOでパッケージabcをログに記録するようにアペンダーを構成すると、出力はそのアペンダーにログされます。

ただし、abcd を処理するように構成されたアペンダーがない場合は、フォールバックを使用する必要があります。

abc Appender をレベル FATAL に構成した場合、これらのメッセージを残すように意図的に log4j を構成したため、何もログに記録されません。

私がやりたいことを説明できたことを願っています:-)

助言がありますか?

クリス

4

2 に答える 2

1

ルートロガーのすべてを取得したくない場合は、

additivity = "false"

他のロガーで。その後、ログは伝播しません。

于 2012-07-19T11:01:52.453 に答える
0

@Keppilは何かを混同しているようです。

加算性はロガーに設定されるものであり、親ロガー (アペンダーを含む) の設定がロガーにどのように伝播するかを制御します。

したがって、OPの場合、次のようにすることができます:

Root Logger -> Appender1
Logger a.b.c -> additivity = false, Appender2

そうすることで、abc (およびそのすべての子) はそのログを Appender2 に送信し、他のすべてのロガーは Appender1 に送信します。

于 2012-07-19T11:10:31.567 に答える