Log4net HowTo
De Wikifago.
(→Exemple de syntaxe du fichier de configuration du logger) |
|||
Ligne 25 : | Ligne 25 : | ||
</filter> | </filter> | ||
</appender> | </appender> | ||
+ | </log4net> | ||
+ | </pre> | ||
- | </log4net> | + | == Exemple d'utilisation à l'interieur du fichier web.config == |
+ | <pre> | ||
+ | <?xml version="1.0"?> | ||
+ | <configuration> | ||
+ | <!-- association des sections personnalise avec leurs classes de manipulation--> | ||
+ | <configSections> | ||
+ | <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net-net-1.0" /> | ||
+ | </configSections> | ||
+ | <appSettings> | ||
+ | ... | ||
+ | </appSettings> | ||
+ | <log4net> | ||
+ | <root> | ||
+ | <level value="DEBUG" /> | ||
+ | <appender-ref ref="RollingLogFileAppender" /> | ||
+ | </root> | ||
+ | <appender name="RollingLogFileAppender" type="log4net.Appender.RollingFileAppender"> | ||
+ | <param name="File" value="log\\webservice.log" /> | ||
+ | <param name="AppendToFile" value="true" /> | ||
+ | <rollingStyle value="Size" /> | ||
+ | <maxSizeRollBackups value="4" /> | ||
+ | <maximumFileSize value="1Mb" /> | ||
+ | <layout type="log4net.Layout.PatternLayout"> | ||
+ | <param name="ConversionPattern" value="%date [%thread] %-5level %c:%line [%x] - %m%newline" /> | ||
+ | </layout> | ||
+ | <filter type="log4net.Filter.LevelRangeFilter"> | ||
+ | <param name="LevelMin" value="DEBUG" /> | ||
+ | <param name="LevelMax" value="FATAL" /> | ||
+ | </filter> | ||
+ | </appender> | ||
+ | </log4net> | ||
+ | <system.web> | ||
+ | ... | ||
+ | </system.web> | ||
+ | </configuration> | ||
</pre> | </pre> | ||
+ | |||
Le fichier peut utiliser des répertoires spécifiques à windows tel que ceux que l'on retrouve dans l'énuméré Environment.SpecialFolder. | Le fichier peut utiliser des répertoires spécifiques à windows tel que ceux que l'on retrouve dans l'énuméré Environment.SpecialFolder. | ||
Ligne 40 : | Ligne 77 : | ||
D'autre variables sont possibles : | D'autre variables sont possibles : | ||
Mes documents -> ${USERPROFILE}\Mes documents; Bureau ${USERPROFILE}\Bureau; Répertoire windows ->${WINDIR} | Mes documents -> ${USERPROFILE}\Mes documents; Bureau ${USERPROFILE}\Bureau; Répertoire windows ->${WINDIR} | ||
- | |||
== Configuration de log4net au niveau de l'assembly == | == Configuration de log4net au niveau de l'assembly == |
Version actuelle en date du 30 septembre 2009 à 15:59
Sommaire |
Exemple de syntaxe du fichier de configuration du logger
Logger de 2 fichiers tournants de 1Mo max chacun, dans le répertoire "logs" de l'exe qui l'utilise.
<?xml version="1.0" encoding="utf-8" ?> <log4net> <!-- Niveaux de trace possibles dans l'ordre : ALL, DEBUG, INFO, WARN, ERROR, FATAL, OFF --> <root> <level value="DEBUG" /> <appender-ref ref="RollingLogFileAppender" /> </root> <appender name="RollingLogFileAppender" type="log4net.Appender.RollingFileAppender"> <param name="File" value=".\\logs\\appli.log" /> <param name="AppendToFile" value="true" /> <rollingStyle value="Size" /> <maxSizeRollBackups value="2" /> <maximumFileSize value="1Mb" /> <layout type="log4net.Layout.PatternLayout"> <param name="ConversionPattern" value="%date [%thread] %-5level %c:%line [%x] - %m%newline" /> </layout> <filter type="log4net.Filter.LevelRangeFilter"> <param name="LevelMin" value="DEBUG" /> <param name="LevelMax" value="FATAL" /> </filter> </appender> </log4net>
Exemple d'utilisation à l'interieur du fichier web.config
<?xml version="1.0"?> <configuration> <!-- association des sections personnalise avec leurs classes de manipulation--> <configSections> <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net-net-1.0" /> </configSections> <appSettings> ... </appSettings> <log4net> <root> <level value="DEBUG" /> <appender-ref ref="RollingLogFileAppender" /> </root> <appender name="RollingLogFileAppender" type="log4net.Appender.RollingFileAppender"> <param name="File" value="log\\webservice.log" /> <param name="AppendToFile" value="true" /> <rollingStyle value="Size" /> <maxSizeRollBackups value="4" /> <maximumFileSize value="1Mb" /> <layout type="log4net.Layout.PatternLayout"> <param name="ConversionPattern" value="%date [%thread] %-5level %c:%line [%x] - %m%newline" /> </layout> <filter type="log4net.Filter.LevelRangeFilter"> <param name="LevelMin" value="DEBUG" /> <param name="LevelMax" value="FATAL" /> </filter> </appender> </log4net> <system.web> ... </system.web> </configuration>
Le fichier peut utiliser des répertoires spécifiques à windows tel que ceux que l'on retrouve dans l'énuméré Environment.SpecialFolder.
Si l'on veut écrire dans le répertoire servant de référentiel commun pour les données spécifiques à l'application qui sont utilisées par l'utilisateur itinérant actuel (Environment.SpecialFolder.ApplicationData); le paramètre File doit s'écrire ainsi :
<param name="File" value="${APPDATA}\\SONG IHM\\logs\\appli.log" />
D'autre variables sont possibles : Mes documents -> ${USERPROFILE}\Mes documents; Bureau ${USERPROFILE}\Bureau; Répertoire windows ->${WINDIR}
Configuration de log4net au niveau de l'assembly
Indiquer a log4net que la config se trouve dans le fichier appli.log4net, et que la configuration doit être prise à chaud.
[assembly: log4net.Config.XmlConfigurator(Watch = true, ConfigFile = "appli.log4net")]
Utilisation dans le code C# pour la classe Toto
Importer log4net dans la classe
using log4net;
Déclarer une variable statique dans la classe
private static readonly log4net.ILog log = LogManager.GetLogger(typeof(Toto));
Utiliser le logger
try { _hostname = System.Net.Dns.GetHostName(); _ipAddress = Dns.GetHostEntry(_hostname).AddressList[0].ToString(); } catch (Exception ex) { log.Error("Erreur lors de l'initialisation du context de l'IHM", ex); MessageBox.Show("Erreur lors de l'initialisation blabla", "Erreur", MessageBoxButtons.OK, MessageBoxIcon.Error, MessageBoxDefaultButton.Button1); }
Logger au niveau debug avec 2 paramètres ( ou plus si on veut... )
log.DebugFormat("Aujourd'hui : {0} heure:{1}",DateTime.Now.ToShortDateString(),DateTime.Now.Hour);