Log4Net过滤器“OR”

5

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

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

我真的不想自己写过滤器,而是希望通过正常的Log4Net过滤器来实现这一点。这可行吗?

1个回答

5
你可以通过子类化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
是啊,我希望已经有其他人做过这个了。我很惊讶如此成熟的日志引擎居然还没有在主干中具备这种能力。 - Mike Gates
1
五年后,它仍然没有实现!猜想没有人想要承诺它;-) - BatteryBackupUnit
@电池备份单元 - 问题是:有人曾经实现它吗? :D - Peter Lillevold

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接