J'essaie d'utiliser log4net dans une application ASP.NET avec Visual Studio 2005. J'ai déclaré une instance de l'enregistreur de la manière suivante:
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?
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.
Oui, fais-le comme dit Anson. En outre, 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 sur le fichier dans Visual Studio Solution Explorer, sélectionnez Propriétés, développez le groupe d'options "Avancé", définissez la valeur "Copier dans le répertoire de sortie" comme "Copier 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 ceci 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>