Premiers pas avec log4net
Sur cette page
Configuration de log4net
Créons une simple application de console Hello World et enregistrons quelque chose sur la console à l’aide de log4net. Une fois que nous avons ce fonctionnement, nous pouvons le mettre à l’échelle pour l’utiliser dans des scénarios de développement réels dans les exemples suivants. Commençons petit et construisons à partir de là.
Tout d’abord, nous devons créer un projet de console simple dans Visual Studio et WriteLine("Hello World")
comme indiqué ci-dessous
[![entrez la description de l’image ici][1]][1]
Ensuite, nous devons ajouter la bibliothèque log4net à notre projet. Nous devons donc cliquer avec le bouton droit sur * Références * et sélectionner * Gérer les packages NuGet *
[![entrez la description de l’image ici][2]][2]
Ensuite, recherchez log4net et installez
[![entrez la description de l’image ici][3]][3]
Nous avons maintenant ajouté avec succès log4net.dll à notre projet.
Nous devons maintenant configurer notre app.config (ou web.config s’il s’agit d’une application Web). Cette partie est un peu délicate mais pas de panique. Nous allons le parcourir étape par étape et faire en sorte que la connexion soit opérationnelle.
Sous app.config, nous devons d’abord créer une section de configuration sous configuration. Nous devons fournir un nom et un type comme indiqué ci-dessous :
<configSections>
<section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler,Log4net"/>
</configSections>
Ce que nous avons fait ici, c’est que nous disons que nous allons créer une section dans notre fichier de configuration appelée “log4net” qui doit être recherchée. Tout ce qui concerne la journalisation sera ici. De la création de notre fichier journal, combien de temps et quelles informations doivent être enregistrées. Alors maintenant, allons-y et créons la section log4net
.
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<configSections>
<section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler,Log4net"/>
</configSections>
<log4net>
</log4net>
<startup>
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5" />
</startup>
</configuration>
La première chose que nous allons ajouter dans notre section log4net est un appender. Un appender est essentiellement un outil de journalisation. C’est ce sur quoi nous voulons enregistrer nos journaux. Il existe de nombreux appenders disponibles pour se connecter aux fichiers, à la base de données, etc. Dans cet exemple, nous allons nous connecter à notre fenêtre de console, créons donc un appender de console :
<log4net>
<appender name="ConsoleAppender" type="log4net.Appender.ConsoleAppender">
</appender>
</log4net>
Ensuite, nous devons définir une mise en page :
<log4net>
<appender name="ConsoleAppender" type="log4net.Appender.ConsoleAppender">
<layout type="log4net.Layout.PatternLayout">
</layout>
</appender>
</log4net>
Sous la disposition, nous définirons ce que nous voulons afficher sur la console et comment nous voulons l’afficher. Pour cela, nous avons besoin d’un modèle de conversion. Il existe de nombreux types de modèles différents que nous pouvons utiliser, pour cet exemple, nous nous en tiendrons à un modèle assez simple.
<log4net>
<appender name="ConsoleAppender" type="log4net.Appender.ConsoleAppender">
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%date{ABSOLUTE} [%thread] %level %logger - %message%newline"/>
</layout>
</appender>
</log4net>
Ce que nous faisons ci-dessus, c’est dire que nous avons besoin des informations suivantes : l’horodatage absolu, le thread en cours d’exécution qui lève l’exception et le niveau de journalisation. Il existe 7 niveaux de journalisation fournis par log4net.
- OFF - rien n’est enregistré (ne peut pas être appelé)
- MORTEL
- ERREUR
- PRÉVENIR
- INFO
- DÉBOGAGE
- ALL - tout est enregistré (ne peut pas être appelé)
Cependant, sur les 7, nous ne pouvons en utiliser que 5 (DEBUG, INFO, WARN, ERROR et FATAL). Déclarer le niveau de journalisation à DEBUG signifie qu’il enregistrera tout, c’est-à-dire DEBUG, INFO, WARN, ERROR et FATAL. Cependant, déclarer le niveau de journalisation à WARN ne consignera que WARN, ERROR et FATAL. J’espère que vous comprenez la hiérarchie.
La dernière chose dont nous avons besoin sous app.config est une section racine. La section racine contient nos enregistreurs de niveau supérieur et le niveau auquel se connecter. Il est important de comprendre que tout hérite de la racine, donc aucun appender ne se connectera à moins qu’il ne soit référencé sous la racine. Avec cela ajouté, voici à quoi devrait ressembler votre app.config :
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<configSections>
<section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler,Log4net"/>
</configSections>
<log4net>
<appender name="ConsoleAppender" type="log4net.Appender.ConsoleAppender">
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%date{ABSOLUTE} [%thread] %level %logger - %message%newline"/>
</layout>
</appender>
<root>
<level value="DEBUG"/>
<appender-ref ref="ConsoleAppender" />
</root>
</log4net>
<startup>
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5" />
</startup>
</configuration>
Ce n’est pas une mauvaise idée de copier-coller des sections du fichier de configuration, cependant, il est important de comprendre de quoi elles sont responsables. Maintenant que nous avons fini de configurer notre app.config, nous devons ajouter un peu de code à notre projet de console. Tout d’abord, nous devons définir une entrée unique qui doit être placée en dehors de votre classe.
[assembly: log4net.Config.XmlConfigurator(Watch = true)]
Placez-le juste en dessous de mes instructions using dans le fichier Program.cs. Ensuite, nous devons créer une instance de l’enregistreur pour l’utiliser pour la journalisation. Cela se fait une fois par classe.
private static readonly log4net.ILog log = log4net.LogManager.GetLogger
(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType);
Et enfin, nous devons enregistrer quelque chose
log.Error("This is my error");
Votre fichier Program.cs devrait ressembler à ceci :
using System;
[assembly: log4net.Config.XmlConfigurator(Watch = true)]
namespace Log4netTutorial
{
class Program
{
private static readonly log4net.ILog log = log4net.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType);
static void Main(string[] args)
{
Console.WriteLine("Hello World");
log.Error("This is my error");
Console.ReadLine();
}
}
}
Allez-y et lancez le programme, votre erreur devrait être enregistrée dans la console :
[![entrez la description de l’image ici][4]][4]
[1] : https://i.stack.imgur.com/varrr.png [2] : https://i.stack.imgur.com/nCtIe.png [3] : https://i.stack.imgur.com/iAiDl.png [4] : https://i.stack.imgur.com/H5cat.png