7

I'm trying to filter my appender based on the type of exception being logged. Is this possible in log4net?

4

1 に答える 1

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 フィルターのソース コードを参照してください。

于 2012-07-06T15:53:11.500 に答える