2009-08-07 6 views
5

Возможно ли создать фильтр, например, PropertyFilter, который является нейтральным (и передается следующему фильтру в цепочке), если соответствует одно или другое значение? Что-то вроде:Фильтры Log4Net «ИЛИ»

<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

и пять лет спустя он все еще не знает! Угадайте, что никто не чувствовал, что это его совершает ;-) – BatteryBackupUnit

+0

@BatteryBackupUnit - вопрос: кто-нибудь когда-либо реализовал его? : D –

Смежные вопросы