NAccLogger – .Net Accurate Logger pour C#

NAccLoggerCette librairie de classes C# fournit des fonctionnalités pour enregistrer du texte et des données vers différentes cibles, et permet de sélectionner uniquement les catégories d’éléments de log, les types de log et les objets source pertinents via les filtres appropriés.

Il est possible de choisir les propriétés des éléments de log parmi une dizaine d’éléments de base (y compris les informations sur l’appelant: objet, type, nom de la méthode / propriété, nom du fichier source et numéro de ligne) et de contrôler la mise en forme des textes des messages de Log.

Cette librairie C# est open source (licence MIT).Retrouvez là sur GitHub : Wiki projet et sources
Installez la librairie dans Visual Studio depuis NuGet : > Package-Install NAccLogger

Plusieurs loggers standard sont fournis, mais de nouveaux peuvent être développés de manière très simple. Chaque composant de la librairie peut également être étendu afin de prendre en charge de nouvelles fonctionnalités. Conçu pour être léger et rapide. Les filtres et la mise en forme peuvent être contrôlés de manière globale ou individuelle pour chaque logger. La librairie peut stocker des logs en temps réel et/ou différer le stockage par blocs d’items de logs. La librairie supporte les contextes multithreads.

Exemples d’utilisation

Tout d’abord référencer la librairie :

using NAccLogger;
using NAccLogger.Ext;

 

appel d’une fonction de log:

this.Warning(LogCategory.Application)?.T(« this is a warning message »);
this l’objet courant l’utilisation d’une méthode d’extension permet de récupérer l’objet (this) qui appelle la librairie. Permet de loger des informations sur le type de l’appelant en plus du path du fichier source,du n°de ligne,du nom de méthode ou propriété qui effectue l’appel
Warning possède une méthode d’extension de object de NAccLogger via le using NAccLogger.Ext l’opération enregistre un item de log de type Warning. Autres opérations possibles: Error, Info, Debug, Fatal, header
LogCategory.App en paramètre la catégorie de l’item de log, parmi les valeurs possibles de LogCategory ou une valeur personnalisée. Ce paramètre peut être omis
?. l’opérateur Null conditionnel ?. représente le filtrage de l’invocation d’opération de log. Il court-circuite l’évaluation de l’expression à droite permettant d’éviter les constructions de string et aute code supplémentaire si l’invocation n’est pas requise par les filtres du logger l’objet obtenu via ?. est un invocateur des loggers sélectionnés par le filtrage. Cet objet est mis en cache (1 par thread) par NAccLogger pour construire les filtrages une seule fois. Il peut être stocké et réutilisé.
T cette méthode correspond à la méthode conditionnelle différée, exécutée lorsque le résultat du filtrage est non null. Elle réalise si il le faut l’appel de méthode initial (par exemple Warning,Debug)

résultat: Logger SystemConsole (avec coloration activée)

 

 
l’appel d’une fonction de log (Info,Debug,Warning,Error,Fatal) entraîne:
1. la fabrication d’un item de log via une fabrique
2. la mise en forme textuelle de l’item par un formatter

Les propriétés par défaut d’un item sont décrites par les propriétés de la classe NAccLogger.Impl.LogItem

propriété description exemple
Index identifiant de l’item de log: numéro unique auto-incrémenté 31
DateTime date et heure de l’appel de la fonction de log, formattage selon la culture locale du logger 28/09/2018 00:14:29
HostName hostname de la machine d’où l’appel a été effectué
IPAddress addresse IP de l’appelant. la factory de l’item présente par défaut l’IP de l’interface réseau sur laquelle internet est disponible 192.168.1.32
ProcessId identifiant du processus de l’appelant 5988
ProcessName nom du processus (exécutable) de l’appelant NAccLogger.Test
ThreadId identifiant du thread dans le processus de l’appelant 1
LogType texte du nom de type d’item de log (Info,Debug,Warning,Error,Fatal). propriété de filtrage Warning
LogCategory nom de catégorie du log Application
Text texte du message de log (formattage des propriétés de l’item)
CallerTypeName nom complet du type de l’appelant (si appel via méthode d’extension, vide si appel via la façade statique) NAccLogger.Test.TestClass1
CallerMemberName nom de la méthode ou de la propriété à l’origine de l’appel de la fonction de log TestMethod1
CallerFilePath path complet du fichier source où se situe le code d’appel de la fonction de log P:\NAccLogger\NAccLogger.Test\TestClassBase.cs
CallerLineNumber n° de la ligne de l’appel dans le fichier source 130

Loggers

Les loggers sont les composants en charge de la restitution des items de log sur la cible associée. Les loggers de base sont:

logger-systemconsole
log vers la console système
la colorisation peut être paramétrée ou désactivée
windows event log
log vers un journal d’événements Windows
Journal personnalisé ou standard
log dans la sortie de Visual Studio
La colorisation est obtenue avec le module VSColorOutput de Mike Ward & Ann Arbor
filelog
log vers fichier

  • taille limite de log (ici 10Ko)
  • historisation d’un log (sur taille atteinte ou date dépassée)
  • indexation des logs avec même date d’historisation

logfile

log vers réseau sur TCP

Filtrage

not completed

Customisation

not completed

à lire également :

Laisser un commentaire