Cómo configuro log4net para que ese registro.IsDebugEnabled es cierto?


Estoy tratando de usar log4net en un ASP.NET aplicación con Visual Studio 2005. He declarado una instancia del logger así:

Private Shared ReadOnly log As ILog = LogManager.GetLogger("")

Estoy tratando de usarlo de la siguiente manera:

If log.IsDebugEnabled Then
   log.Debug("Integration Services Constructed")
End If

Aquí está mi configuración:

<log4net>

    <root>
        <level value="DEBUG" />
        <appender-ref ref="RollingFileAppender" />
    </root>

    <appender name="RollingFileAppender" type="log4net.Appender.RollingFileAppender">
        <file value="..\\logs\\logfile.log"/>
        <appendToFile value="true"/>
        <rollingStyle value="Size"/>
        <maxSizeRollBackups value="10"/>
        <maximumFileSize value="1MB"/>
        <staticLogFileName value="true"/>
        <layout type="log4net.Layout.PatternLayout">
            <conversionPattern value="%date [%thread] %-5level %logger [%property{NDC}] - %message%newline"/>
        </layout>
        <filter type="log4net.Filter.LevelRangeFilter">
            <param name="LevelMin" value="DEBUG" />
            <param name="LevelMax" value="FATAL" />
        </filter>
    </appender>

</log4net>

Desafortunadamente, log.IsDebugEnabled siempre es falso.
¿Cómo configuro log4net para que solo pueda registrar mensajes de depuración?

Author: Philipp M, 2008-10-21

6 answers

Antes de llamar a LogManager.getLogger ( "" )

Tienes que llamar a log4net.Config.XmlConfigurator.Configurar(); En un ASP.NET aplicación es probable que desee poner esta llamada en Application_Start

 43
Author: Anson Smith,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2008-10-20 21:39:05

Sí, hazlo como dijo Anson. Además, si está llamando a Configure en una biblioteca de clases, puede hacerlo agregando un atributo a su clase:

[assembly: XmlConfigurator(Watch = true)]

Y si estás usando el archivo log4net.config, úsalo así:

[assembly: log4net.Config.XmlConfigurator(ConfigFile = "log4net.config", Watch = true)]
 24
Author: Tim Scott,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2013-06-26 01:04:37

Si está utilizando un archivo de configuración separado para log4net, haga esto: después de seguir todas las demás instrucciones de configuración, asegúrese de hacer clic derecho en el archivo en el explorador de soluciones de visual studio, seleccione propiedades, expanda el grupo de opciones "Avanzado", establezca el valor "Copiar al directorio de salida" como "Copiar siempre". Eso hará la magia... :) salud!!

 9
Author: Anantha,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2012-12-02 16:17:01

Si está configurando log4net en código en lugar de en un archivo de configuración, puede llamar a log4net.Config.BasicConfigurator.Configure antes de GetLogger.

 2
Author: Protector one,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2014-11-05 11:31:55

VB.NET -

<Assembly: log4net.Config.XmlConfigurator(Watch:=True)> 
 1
Author: developer9,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2014-03-20 02:20:08

Use esto en cualquier método antes de usar log:

Log4net.Config.XmlConfigurator.Configure ();

En App.Config, la configuración debe ser:

<root>
      <level value="ALL" />
      <appender-ref ref="AppenderName" />
    </root>
 0
Author: tHiNk_OuT_oF_bOx,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2014-02-10 11:20:15