Mise en place de log4net dans un projet web
Mise en place de Log4Net :
1) Ajouter la référence log4net.dll au projet
(téléchargement sur http://logging.apache.org/)
2) Ajouter au projet, le fichier Global.asax.
Dans l’événement « Application_Start » ajouter ce code : log4net.Config.XmlConfigurator.Configure();
void Application_Start(object sender, EventArgs e) { // Code qui s'exécute au démarrage de l'application log4net.Config.XmlConfigurator.Configure(); }
3) Ouvrir le fichier web.config puis
- ajouter dans la section « Configuration/Configsections » ce code :
<section name="log4net"type="log4net.Config.Log4NetConfigurationSectionHandler, log4net"/>
- Après la balise de fermeture</configSections> ajouter la balise <log4net><log4net/>
- Entre ces balises rajouter l’un ou ces deux codes en fonction de votre choix (envoi par mail, ou stockage dans un fichier)
o Log dans un fichier texte :
<appendername="LogFileAppender"type="log4net.Appender.FileAppender"> <paramname="File"value="Logs\\Log4Net.log"/> <layouttype="log4net.Layout.PatternLayout"> <paramname="ConversionPattern"value="%d [%t] %-5p %c %m%n"/> </layout> </appender>
o Log par mail :
<appendername="SmtpAppender"type="log4net.Appender.SmtpAppender"> <tovalue="to@domain.com" /> <fromvalue="from@domain.com" /> <subjectvalue="log www.domain.com" /> <smtpHostvalue="smtpServer.domain.com" /> <bufferSizevalue="512" /> <lossyvalue="true" /> <evaluatortype="log4net.Core.LevelEvaluator"> <thresholdvalue="WARN"/> </evaluator> <layouttype="log4net.Layout.PatternLayout"> <conversionPatternvalue="%newline%date [%thread] %-5level %logger [%property] -%message%newline%newline%newline" /> </layout> </appender>
- Après l’ouverture de la balise<log4net> ajouter l’un ou les deux codes suivant (texte ou mail)
o Texte
<loggername="File"> <levelvalue="All" /> <appender-refref="LogFileAppender" /> </logger>
o Mail
<loggername="EmailLog"> <levelvalue="All" /> <appender-refref="SmtpAppender" /> </logger>
4) Ajouter les logs aux endroits nécessaires :
- Dans un fichier texte :
log4net.ILog logger = log4net.LogManager.GetLogger("File");
- Envoi par mail :
log4net.ILog logger = log4net.LogManager.GetLogger("EmailLog");
- Création du log :
logger.Info("Erreur dans la methode x");