Log4Net фильтры "ИЛИ" - PullRequest
       21

Log4Net фильтры "ИЛИ"

5 голосов
/ 07 августа 2009

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

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

Я действительно не хочу писать свой собственный фильтр и предпочел бы сделать это с помощью обычных фильтров Log4Net. Возможно ли это?

1 Ответ

4 голосов
/ 15 августа 2009

Вы, конечно, можете разработать такой фильтр самостоятельно, создав подкласс 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. Это, безусловно, будет полезно для широкой публики:)

...