我试图根据记录的异常类型过滤我的appender。这在log4net中是否可行?
答案 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过滤器的源代码。