NAccLogger – .Net Accurate Logger pour C#
Cette 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.
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 | 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:

la colorisation peut être paramétrée ou désactivée

Journal personnalisé ou standard
La colorisation est obtenue avec le module VSColorOutput de Mike Ward & Ann Arbor