Log4Net过滤“OR”

时间:2009-08-07 17:19:08

标签: configuration logging log4net

是否可以创建一个过滤器,例如,如果一个或另一个值匹配,则PropertyFilter是中性的(并传递给链中的下一个过滤器)?类似的东西:

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

我真的不想编写自己的过滤器,而是希望使用普通的Log4Net过滤器完成此操作。这可能吗?

1 个答案:

答案 0 :(得分: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项目。对公众来说肯定会有用:)