针对特定异常类型的Log4Net appender过滤器?

时间:2012-07-05 21:05:09

标签: log4net

我试图根据记录的异常类型过滤我的appender。这在log4net中是否可行?

1 个答案:

答案 0 :(得分:10)

log4net不直接支持此功能。但是,您可以通过从IFilter接口或FilterSkeleton类(log4net.Filter命名空间中)派生来轻松实现自己的过滤器。

这样的事情可以解决问题:

public class ExceptionTypeFilter : FilterSkeleton
{
     override public FilterDecision Decide(LoggingEvent loggingEvent)
     { 
          var ex = loggingEvent.ExceptionObject as YourExceptionType;
          return (ex != null) ? FilterDecision.Accept : FilterDecision.Deny;         
     }
}

此过滤器可以像常规过滤器一样使用。如需进一步参考,您可以查看标准log4net过滤器的源代码。