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?
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
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)]
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!!
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
.
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)>
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>
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