Comment travailler avec log4net en C #

Lorsque vous travaillez sur des applications, vous souhaiterez souvent enregistrer des données d'application qui peuvent inclure, la séquence d'événements dans votre application, des actions utilisateur ou même des erreurs lorsqu'elles se produisent. Il existe de nombreux frameworks de journalisation que vous pouvez utiliser, mais log4net est de loin l'un des frameworks de journalisation les plus populaires pour une utilisation avec des applications créées ou développées en .NET. Il s'agit d'une bibliothèque open source (un port de la populaire bibliothèque open source log4j pour Java) qui peut être utilisée pour consigner les données d'application sur différentes cibles de journal dans .NET.

Installation de log4net 

Le moyen le plus simple et le plus rapide de commencer à utiliser log4net consiste à l'installer via le gestionnaire de packages NuGet. En supposant que vous avez créé un projet d'application console dans Visual Studio, vous pouvez installer log4net via NuGet Manager, en suivant ces étapes.

  1. Dans la "Fenêtre Explorateur de solutions", sélectionnez et faites un clic droit sur votre projet
  2. Cliquez sur "Gérer les packages NuGet ..."
  3. Cliquez sur "En ligne" puis tapez log4net dans la zone de recherche
  4. Sélectionnez le package log4net que vous souhaitez installer
  5. Cliquez sur "Installer" pour démarrer le processus d'installation

Au moment d'écrire ces lignes, la dernière version stable de log4net est la 2.0.5. Une fois que log4net a été installé via le gestionnaire de package NuGet, vous observerez l'assembly log4net ajouté en tant que référence à votre projet.

Configuration de log4net

Maintenant que le package log4net a été installé avec succès, ajoutez la ligne suivante au fichier AssemblyInfo.cs dans le dossier Propriétés de votre projet. Si cela n'est pas spécifié, les paramètres de configuration ne seront pas pris en compte.

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

Vous pouvez également mentionner la même chose dans le fichier app.config ou web.config.

[assembly: log4net.Config.XmlConfigurator (Watch = true)]

Si vos métadonnées de configuration log4net résident dans un autre fichier (c'est-à-dire autre que les fichiers web.config ou app.config), vous pouvez spécifier ce qui suit à la place.

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

L'étape suivante consiste à spécifier les détails de configuration nécessaires pour log4net dans le fichier app.config ou web.config de votre application. En supposant que vous utilisez un projet d'application console, ajoutez une section de configuration nommée «log4net» dans le fichier app.config comme indiqué ci-dessous.

Maintenant, ajoutez la section "" après l'élément dans votre fichier app.config. Ensuite, dans la section "", placez les détails de configuration comme indiqué dans l'extrait de code ci-dessous.

C'est tout ce que vous devez faire pour configurer log4net. Voyons maintenant comment nous pouvons l'utiliser dans notre code. L'élément est utilisé pour spécifier le nom et le type de l'enregistreur à utiliser. Dans cet exemple, nous utilisons l'appender de fichier roulant. Cependant, il existe de nombreux autres types d'ajouteurs disponibles, à savoir, AdoNetAppender, AspNetTraceAppender, ConsoleAppender, etc. Voici la liste complète et comment configurer d'autres appenders.

Utilisation de log4net 

Dans votre classe, créez une référence à ILog en appelant la méthode statique GetLogger de la classe LogManager, comme illustré dans l'extrait de code ci-dessous.

private static readonly log4net.ILog log = 

log4net.LogManager.GetLogger

(System.Reflection.MethodBase.GetCurrentMethod (). DeclaringType);

Vous pouvez maintenant utiliser l'instance nommée log pour enregistrer les données sur les cibles configurées. L'extrait de code suivant illustre comment vous pouvez désormais tirer parti de l'instance de journal pour consigner les données.

log.Debug ("Ceci est un message de débogage");

log.Info ("Ceci est un message d'information");

log.Warn ("Ceci est un message d'avertissement");

log.Error ("Ceci est un message d'erreur");

log.Fatal ("Ceci est un message fatal");

Voici une liste de codes complète qui montre comment vous pouvez enregistrer votre message d'exception dans un fichier texte à l'aide de log4net.

programme de classe

   {

       statique en lecture seule log4net.ILog log =

       log4net.LogManager.GetLogger

(System.Reflection.MethodBase.GetCurrentMethod (). DeclaringType);

       static void Main (string [] args)

       {

           essayer

           {

               throw new Exception ("Ceci est un message de test ...");

           }

           catch (Exception ex)

           {

               log.Error (ex.Message);

           }          

           Console.Read ();

       }

   }

Après avoir exécuté le programme ci-dessus, un fichier texte nommé .log sera créé et le message d'exception spécifié avec sera enregistré avec l'horodatage. Notez que vous pouvez également utiliser log4net par programmation, c'est-à-dire configurer log4net par programmation sans avoir besoin de la configuration dont nous avons parlé précédemment.