是否可以创建一个过滤器,例如,如果一个或另一个值匹配,则PropertyFilter是中性的(并传递给链中的下一个过滤器)?类似的东西:
<filter type="log4net.Filter.PropertyFilter">
<Key value="myProperty" />
<StringsToMatch Operator="OR">
<Match>value1</Match>
<Match>value2</Match>
</StringsToMatch>
</filter>
我真的不想编写自己的过滤器,而是希望使用普通的Log4Net过滤器完成此操作。这可能吗?
答案 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项目。对公众来说肯定会有用:)