Pregunta

Estoy intentando usar log4net en una aplicación ASP.NET con Visual Studio 2005. He declarado una instancia del registrador así:

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

Estoy intentando 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?

¿Fue útil?

Solución

Antes de llamar a LogManager.GetLogger (" ")

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

Otros consejos

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

[assembly: XmlConfigurator(Watch = true)]

y si está utilizando el archivo log4net.config , utilícelo así en su lugar:

[assembly: log4net.Config.XmlConfigurator(ConfigFile = "log4net.config", Watch = true)]

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 que hace clic derecho en el archivo en el explorador de soluciones de Visual Studio, seleccione Propiedades, expanda " Avanzado " grupo de opciones, configure el " Copiar en el directorio de salida " valor como " Copiar siempre " ;. Eso hará la magia ... :) saludos !!

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

VB.NET -

<Assembly: log4net.Config.XmlConfigurator(Watch:=True)> 

Use esto en cualquier método antes de usar el registro:

log4net.Config.XmlConfigurator.Configure ();

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

<root>
      <level value="ALL" />
      <appender-ref ref="AppenderName" />
    </root>
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top