2012-05-22 18 views
9

Sto utilizzando log4net per la prima volta e ho seguito la documentazione utilizzando gli esempi di configurazione forniti, tuttavia le istruzioni di debug non registrano.log4net non registra le dichiarazioni di debug

I livelli di informazioni, errori, Avvisi e irreversibili vengono registrati correttamente. Qualcuno può dirmi cosa mi manca?

app.config:

<section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net" /> 

<log4net> 
    <appender name="Console" type="log4net.Appender.ColoredConsoleAppender"> 

     <mapping> 
      <level value="INFO" /> 
      <foreColor value="Green"/> 
     </mapping> 

     <mapping> 
      <level value="DEBUG" /> 
      <foreColor value="Cyan,HighIntensity"/> 
     </mapping> 

     <mapping> 
      <level value="WARN" /> 
      <foreColor value="Purple,HighIntensity"/> 
     </mapping> 

     <mapping> 
      <level value="ERROR" /> 
      <foreColor value="Red,HighIntensity"/> 
     </mapping> 

     <mapping> 
      <level value="FATAL" /> 
      <foreColor value="Yellow,HighIntensity"/> 
     </mapping> 

     <layout type="log4net.Layout.PatternLayout"> 
      <!-- Pattern to output the caller's file name and line number --> 
      <conversionPattern value="%5level [%thread] (%file:%line) - %message%newline" /> 
     </layout>    
    </appender> 

    <appender name="RollingFile" type="log4net.Appender.RollingFileAppender"> 
     <file value="example.log" /> 
     <appendToFile value="true" /> 
     <maximumFileSize value="100KB" /> 
     <maxSizeRollBackups value="2" /> 

     <layout type="log4net.Layout.PatternLayout"> 
      <conversionPattern value="%level %thread %logger - %message%newline" /> 
     </layout> 
    </appender> 

    <root> 
     <level value="INFO" /> 
     <appender-ref ref="Console" /> 
     <appender-ref ref="RollingFile" /> 
    </root> 
</log4net> 

Alcune persone hanno menzionato il controllo AssemblyInfo per [assembly: log4net.Config.XmlConfigurator()], tuttavia non v'è alcuna differenza con o senza questa linea.

Logger è dichiarato come:

private static readonly ILog log = LogManager.GetLogger(typeof(CWD_Netsuite)); 

e vi si accede come:

XmlConfigurator.Configure(); 
log.Debug("Debugging");    //does not get logged 
log.Info("Entering Application"); //logged to console and log file 
log.Debug("Debug Statement");  //does not get logged 

log.Error("Error statement");  //logged to console and log file 
log.Warn("Warning statement"); //logged to console and log file 
log.Fatal("Fatal Statement");  //logged to console and log file 
+1

Giusto per chiarire tutte le risposte qui sotto, nella gerarchia di registrazione Log4Net, DEBUG è il più basso, al di sotto INFO. –

risposta

15

Hai un filtro impostato per INFO livello nella vostra categoria principale (filtrando così eventuali messaggi di DEBUG livello) :

<root> 
    <level value="INFO" /> 
    <appender-ref ref="Console" /> 
    <appender-ref ref="RollingFile" /> 
</root> 

Change a

<level value="DEBUG" /> 
+0

Sapevo che sarebbe stato qualcosa di semplice :) Grazie mille! –

8

Modificare il valore del livello di "DEBUG" nel nodo ...

<root> 
    <level value="DEBUG" /> 
    <appender-ref ref="Console" /> 
    <appender-ref ref="RollingFile" /> 
</root> 
12

Il log4net livelli sono definiti nel seguente ordine:

TUTTI, DEBUG, INFO , avvertire, ERRORE, FATAL, OFF

sulla base della sua corrente impostazioni che stai scrivendo tutto con INFO e sotto.

impostare il proprio nodo principale al seguente:

<root> 
    <level value="DEBUG" /> 
    <appender-ref ref="Console" /> 
    <appender-ref ref="RollingFile" /> 
</root> 
Problemi correlati