Фильтры Log4Net ИЛИ

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

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

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


person Mike Gates    schedule 07.08.2009    source источник


Ответы (1)


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

person Peter Lillevold    schedule 15.08.2009
comment
Да, я надеялся, что это уже сделал кто-то другой. Я удивлен, что такой зрелый механизм ведения журнала не имеет этой возможности уже в багажнике. - person Mike Gates; 18.08.2009
comment
а через пять лет все еще нет! Думаю, никому не хотелось его совершать ;-) - person BatteryBackupUnit; 27.05.2014
comment
@BatteryBackupUnit - вопрос: кто-нибудь когда-нибудь реализовывал это? :D - person Peter Lillevold; 27.05.2014