5

INFO'yu günlükten filtrelemenin ve sadece web.config'deki yapılandırmayı kullanarak DEBUG & ERROR'u göstermenin bir yolu var mı?Log4Net kütükten INFO'yu filtreleyin ve sadece DEBUG & ERROR'u görüntüleyin

<root> 
<level value="DEBUG" /> 
<appender-ref ref="ColoredConsoleAppender" /> 
<appender-ref ref="RollingFileSystemAppender" /> 
<appender-ref ref="ConsoleAppender" /> 
</root> 
+0

olası yinelenen. com/questions/7721843/log4net-configuration-levelmatchfilter) – samy

cevap

8

Log4X'te, iletileri filtrelemek için eklere uygulanabilecek filtreler vardır; Burada Filtreler belirli kaydı düzeyini maç olayları günlüğe bir list of the filters

  • log4net.Filter.LevelMatchFilter olduğu; alternatif olarak bu, belirli bir kayıt seviyesine uymayan olayları filtrelemek için yapılandırılabilir.
  • log4net.Filter.LevelRangeFilter LevelMatchFilter'a benzer şekilde, tek bir log düzeyini filtrelemek yerine, bu, bitişik düzeylerde kapsayıcı bir aralıkta filtreler.
  • log4net.Filter.LoggerMatchFilter Filtreler, olayları yayıldıkları kaydedici nesnenin adına göre günlüğe kaydeder.
  • log4net.Filter.StringMatchFilter Filtreler, günlük dizesine göre bir dize veya normal ifade eşleşmesini temel alarak olayları günlüğe kaydeder.
  • log4net.Filter.PropertyFilter Filtreler, olayları belirli bir içerik özelliğine göre bir değere veya normal ifade eşleşmesine göre günlüğe kaydeder.
  • log4net.Filter.DenyAllFilter Ekler için tüm günlüğe kaydetme olaylarını etkin olarak bırakır. Senin durumunda

Eğer INFO seviyesini dışlamak için lütfen üç appenders filtre gerekir: <filter> etiketlerini (gösterildiği gibi bu

<filter type="log4net.Filter.LevelMatchFilter"> 
    <acceptOnMatch value="false" /> 
    <levelToMatch value="INFO" /> 
</filter> 
+0

Tam olarak aradığım şey budur! Test edildi ve işe yarıyor.Teşekkürler yeterli değil –

2

Not: Bir LevelMatchFilter INFO düzey günlükleri reddederek çalışacak Yukarıdaki örnekler bir <appender> etiketinde görünmelidir! Örneğin (bu geçerli log4net yapılandırma değil - Özür sadece <filter> etiketi <appender> altında bir alt giriş nasıl gösterilen: -: // stackoverflow (http [LevelMatchFilter Log4Net yapılandırma] arasında

<configuration> 
    <configSections> 
    <section ...="" /> 
    </configSections> 
    <startup> 
    <supportedRuntime ...="" /> 
    </startup> 
    <log4net> 
    <appender name="ConsoleAppender" type="log4net.Appender.ConsoleAppender"> 
     <layout type="log4net.Layout.PatternLayout"> 
     <conversionPattern value="%date{dd MMM yyyy HH:mm:ss} {%thread} %level - %message%newline%exception"/> 
     </layout> 
     <filter type="log4net.Filter.LevelMatchFilter"> 
     <acceptOnMatch value="true" /> 
     <levelToMatch value="INFO" /> 
     </filter> 
     <filter type="log4net.Filter.DenyAllFilter" /> 
    </appender> 
    <root> 
     <appender-ref ...="" /> 
    </root> 
    <logger name="Log4NetTest.OtherClass"> 
     <level value="DEBUG"/> 
     <appender-ref ref="ConsoleAppender"/> 
    </logger> 
    </log4net> 
</configuration> 
+1

Etiketin yanı sıra etiketin doğru konumunu işaret etmek için aşağı çekildi DenyAllFilter - diğer tüm seviyeleri engellemek için gereklidir. – Bertie