5

C'è un modo per filtrare INFO dal registro e mostra solo ERRORE DEBUG &, utilizzando la configurazione in web.config?Log4Net filtra INFO dal registro e mostra solo DEBUG & ERRORE

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

possibile duplicato del [Log4Net configurazione - LevelMatchFilter] (http: // StackOverflow. it/questions/7721843/log4net-configuration-levelmatchfilter) – samy

risposta

8

In log4X ci sono filtri che possono essere applicati agli appendici per filtrare i messaggi; ecco un list of the filters

  • log4net.Filter.LevelMatchFilter Filtri log di eventi che corrispondono a un livello di registrazione specifico; in alternativa, è possibile configurarlo per filtrare eventi che NON corrispondono a un livello di registrazione specifico.
  • log4net.Filter.LevelRangeFilter Simile a LevelMatchFilter, ad eccezione del fatto che anziché filtrare un singolo livello di registro, questo filtra su un intervallo inclusivo di livelli contigui.
  • log4net.Filter.LoggerMatchFilter Filtra gli eventi del registro in base al nome dell'oggetto del logger da cui vengono emessi.
  • log4net.Filter.StringMatchFilter I filtri registrano gli eventi in base a una stringa o un'espressione regolare corrispondente al messaggio di registro.
  • log4net.Filter.PropertyFilter I filtri registrano gli eventi in base a un valore o una corrispondenza di espressione regolare rispetto a una proprietà di contesto specifica.
  • log4net.Filter.DenyAllFilter Elimina efficacemente tutti gli eventi di registrazione per l'appender.

Nel tuo caso si avrebbe bisogno di filtrare i tre appenders al fine di escludere il livello INFO: un LevelMatchFilter rifiutando INFO tronchi livello avrebbe funzionato:

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

Questo è esattamente quello che stavo cercando !! Testato e funziona, non posso ringraziarti abbastanza. –

2

Nota che i <filter> tag (come mostrato in gli esempi sopra) devono apparire all'interno di un tag <appender>! Per esempio (non si tratta di una configurazione log4net valida - sto solo mostrando come il tag <filter> è una voce di bambino sotto <appender>:

<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

In suvaluato per indicare la posizione corretta del tag così come DenyAllFilter - che è necessario per bloccare tutti gli altri livelli. – Bertie

Problemi correlati