2012-04-07 5 views
0

加法とログレベル...ここのlog4j、私はそれがサポートされているかわからないのlog4jでの構成に到達しようとしている

シナリオですパッケージcom.abcとパッケージcomの別のロガー(どちらもadditivity = true)。

これは実質的に私の目標は、任意のメッセージをログに記録する第二ロガー(親ロガー)を定義できるようにすることです...クラスcom.abc.myClassのいずれかのログが両方のロガーに記録されること

を意味し、そのロガーに直接来たクラスcom.myClassから追加機能を介して来て、既に子孫ロガーにログインしていたエラーレベルのメッセージのみを記録しています...

"com"のロガーをERRORに設定するとエラーレベルメッセージが表示されますこのログに直接書き込まれたもののINFOレベルのメッセージを表示しようと思います...

は可能でしょうか?追加のログレベルを設定するようなもの...

ありがとう、 GB。

答えて

1

自分でLog4J Filterを作成します。

このフィルタを親アペンダに接続し、 "com.abc"イベントの場合のみレベルがERRORでない場合にフィルタリングします。

簡単な例:

public class MyCustomFilter extends Filter 
{ 
    @Override 
    public int decide(final LoggingEvent event) { 
    if (event. getFQNOfLoggerClass().startsWith("com.abc.") && !event.getLevel().isGreaterOrEqual(Level.ERROR) { 
     return DENY; 
    } 
    return NEUTRAL; 
    } 
} 

は当然すべてのあなたのニーズに合った、より良い条件を実装する必要があります。