2009-08-07 14 views
5

いずれかの値または他の値が一致すると、中立で(チェーンの次のフィルターに渡される)PropertyFilterなどのフィルターを作成できますか?何かが好きです:Log4Netフィルター "OR"

<filter type="log4net.Filter.PropertyFilter"> 
    <Key value="myProperty" /> 
    <StringsToMatch Operator="OR"> 
     <Match>value1</Match> 
     <Match>value2</Match> 
    </StringsToMatch> 
</filter> 

私は本当に自分のフィルターを書いたくないので、通常のLog4Netフィルターでこれを達成したいと思います。これは可能ですか?

答えて

4

FilterSkeletonをサブクラス化することで、このようなフィルタを自分で開発することもできます。

しかし、このような特殊なフィルタを作成するのではなく、フィルタのコレクションを含むように設定してより一般的なフィルタを実装することをお勧めします。設定は次のようになります。

<filter type="CompositeFilter"> 
    <operator value="Or" /> 
    <filters> 
    <filter type="log4net.Filter.PropertyFilter"> 
     <stringToMatch value="value1" /> 
    </filter> 
    <filter type="log4net.Filter.PropertyFilter"> 
     <stringToMatch value="value2" /> 
    </filter> 
    </filters> 
</filter> 

このようなフィルタを作成する場合は、log4netプロジェクトに提出することをお勧めします。それは確かに一般の人々のために有用であろう:)

+2

ええ、私は他の誰かがすでにこれを行っていた期待していました。私はこのような成熟したログエンジンがトランクにすでにこの機能を持たないことに驚いています。 –

+1

と5年後にはそれはまだありません!誰もが – BatteryBackupUnit

+0

@BatteryBackupUnit ;-)をコミットするように感じていないと思う - 問題は、誰もが今までそれを実装したのですか? :D –