特定异常类型的Log4Net appender筛选器?
我正在尝试根据记录的异常类型筛选appender。这在log4net中可能吗?log4net不直接支持这一点。但是,通过从特定异常类型的Log4Net appender筛选器?,log4net,Log4net,我正在尝试根据记录的异常类型筛选appender。这在log4net中可能吗?log4net不直接支持这一点。但是,通过从IFilter接口或FilterSkeleton类(都在log4net.filter命名空间中)派生,您可以非常轻松地实现自己的过滤器 像这样的事情应该可以做到: public class ExceptionTypeFilter : FilterSkeleton { override public FilterDecision Decide(LoggingEvent
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过滤器的源代码。此代码只记录您的特定异常类型。如果您想过滤掉一个特定的异常,您可以反转Accept&Deny。FilterDecision.Accept意味着记录它。拒绝意味着不记录它。可能是显而易见的,但我花了一分钟的时间仔细考虑。:)如果您有多个筛选器,则可能需要使用FilterDecision.Neutral。