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

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

我真的不想编写自己的过滤器,而是希望使用普通的Log4Net过滤器来实现这一点。 这可能吗?

#1楼 票数: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项目。 它肯定对普通大众有用:)

  ask by Mike Gates translate from so

未解决问题?本站智能推荐:

2回复

如何在log4net中过滤自定义级别?

我复制了log4net示例以实现自定义日志级别AUDIT。 我将AUDIT定义为值35000,介于DEBUG 30000和INFO 40000之间。 以下是我的配置部分。 我有一个appender记录所有级别和一个应该只记录AUDIT级别(这只是为了测试) 测试方法是
1回复

log4net配置问题

我有一个单独的Log4Net.config文件。 我补充道 到AssemblyInfo.cs 当我使用调试模式运行应用程序时,lognet正在记录。 当我将应用程序发布到IIS时,lognet不会记录任何内容。 我还有以下内容: 这是什么原因?
2回复

Log4Net配置问题

所以我有一个网站和一个每天运行的控制台应用程序。 它们都调用一个名为ProcessIncident()的函数。 该网站允许您手动执行单个事件,控制台应用程序每晚都会批量处理。 在函数内我有各种log4net Log.InfoFormat()和Log.DebugFormat()调用
1回复

Log4Net无法创建.txt文件?

这是我第一次尝试进行日志记录,并且我已经研究了类似的问题,但是似乎无法弄清楚我的处境,可能是因为我没有遇到任何错误。 我正在尝试使用Log4Net来简单地创建一个.txt文件。 我没有web.config或app.config,因此我创建了自己的配置文件来设置Log4Net(通过研究,我
2回复

log4net记录器配置

是否可以通过配置设置记录器。 我有一个使用框架的Web应用程序。 该框架是可扩展的,并具有记录器。 目前,当我登录时,记录器将设置为框架类。 是否可以配置Web应用程序并将Web应用程序的记录器设置为loggerForWebApp ,将控制台应用程序的记录器(使用相同的框架)设置为l
1回复

log4net:未调用自定义PatternLayoutConverter

情况:我想显示记录消息的代码的方法和行号。 问题是我有一个调用log4net记录器的中间类。 不幸的是,由于现有的架构问题,我无法取消这个中级课程。 结果是我总是将方法和行号看作是在中间类中。 不是我想要的。 所以我尝试创建一个自定义的PatternLayoutConverter,
13回复

外部文件中的 Log4Net 配置不起作用

我们正在使用 log4net 并希望在外部配置文件中指定它的配置(就像我们对其他部分所做的那样)。 为此,我们将 App.config 中的 log4net 部分更改为: ... <section name="log4net" type="log4net.Config.Log4Ne
1回复

Log4net有时不登录服务器

我正在使用log4net记录错误或调试。 但是有时它会停止记录一段时间。 我是否缺少任何东西,或者是服务器问题