2012-07-05 17 views

cevap

9

log4net bunu doğrudan desteklemiyor. Ancak, kendi filtrenizi, IFilter arabiriminden veya FilterSkeleton sınıfından (her ikisi de log4net.Filter ad alanında) türeterek kolayca uygulayabilirsiniz.

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

Bu filtre daha sonra normal bir filtre gibi kullanabilirsiniz: Böyle

şey hile yapmak gerekir. Daha fazla referans için standart log4net filtrelerinin kaynak koduna bakabilirsiniz.

+0

Bu kod yalnızca özel kural dışı durumunuzu kaydeder. Belirli bir istisnayı filtrelemek isterseniz Kabul Et ve Reddet'i tersine çevirebilirsiniz. FilterDecision.Accept, onu kaydetmek anlamına gelir. Reddetmek, onu kaydetme anlamına gelir. Muhtemelen bariz, ama düşünmem gereken bir dakika sürdü. :) – scw

+0

Birden fazla filtreniz varsa, FilterDecision.Neutral kullanmanız gerekebilir. – scw

İlgili konular