Question

J'essaie d'utiliser log4net dans une application ASP.NET avec Visual Studio 2005. J'ai déclaré une instance de l'enregistreur comme suit:

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

J'essaie de l'utiliser de la manière suivante:

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

Voici ma configuration:

<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>

Malheureusement, log.IsDebugEnabled est toujours faux.
Comment configurer log4net pour ne pouvoir consigner que les messages de débogage?

Était-ce utile?

La solution

Avant d'appeler LogManager.GetLogger ("")

Vous devez appeler log4net.Config.XmlConfigurator.Configure (); Dans une application ASP.NET, vous souhaiterez probablement mettre cet appel dans Application_Start

Autres conseils

Oui, faites-le comme dit Anson. De même, si vous appelez Configure dans une bibliothèque de classes, vous pouvez le faire en ajoutant un attribut à votre classe:

[assembly: XmlConfigurator(Watch = true)]

et si vous utilisez le fichier log4net.config , utilisez-le comme cela à la place:

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

Si vous utilisez un fichier de configuration distinct pour log4net, procédez comme suit: après avoir suivi toutes les autres instructions de configuration, assurez-vous de cliquer avec le bouton droit de la souris sur le fichier dans l'explorateur de solution Visual Studio, sélectionnez Propriétés, développez le fichier "Avancé". groupe d'options, définissez le " Copier dans le répertoire de sortie " valeur en tant que "Copie toujours". Cela fera la magie ... :) à la vôtre !!

Si vous configurez log4net dans le code plutôt que dans un fichier de configuration, vous pouvez appeler log4net.Config.BasicConfigurator.Configure avant GetLogger .

VB.NET -

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

Utilisez-le dans n’importe quelle méthode avant d’utiliser log:

log4net.Config.XmlConfigurator.Configure ();

Dans App.Config, les paramètres doivent être:

<root>
      <level value="ALL" />
      <appender-ref ref="AppenderName" />
    </root>
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top