Les sections précédentes fournissent tout ce qui est nécessaire pour ajouter un logging souple à vos applications. Mais, pour de grandes applications, il existe une autre fonction extrêmement utile : la hiérarchie des loggers.
En effet, chaque logger, à l’exception du logger racine, a un ou plusieurs ancêtres.
Hiérarchie des loggers

Le logger racine est l’ancêtre de tous les loggers nommés. Parmi ces derniers, un logger est un ancêtre d’un autre logger si le nom de l’ancêtre suivi d’un point est un préfixe du nom du logger descendant. Par exemple, un logger nommé OrderEntry est un ancêtre d’un logger nommé OrderEntry.Validate. Les loggers OrderEntry et OrderEntry.Validate sont tous deux les ancêtres d’un logger nommé OrderEntry.Validate.ChkAmt. Un logger est considéré parent ou enfant, si le logger parent est un ancêtre de l’enfant et s’il n’y a pas d’ancêtres entre eux deux. Cette hiérarchie est importante pour deux raisons :
- Quand aucun niveau n’a été attribué à un logger, il hérite du niveau de son parent
- Quand une requête de log est validée, tous les appenders attachés au logger et à ses ancêtres sont appelés Ces deux fonctions offrent une grande souplesse d’organisation et de contrôle du logging dans une grande application.
La hiérarchie des loggers que montre la figure 6 est un bon exemple d’héritage de niveau. Tous les loggers, à l’exception de OrderEntry. Validate, ont des niveaux explicitement assignés. OrderEntry.Validate n’a pas de niveau assigné et il hérite donc du niveau Warn provenant du logger OrderEntry, qui est le parent. Si le logger OrderEntry n’avait pas non plus de niveau assigné, lui et le logger OrderEntry.Validate hériteraient du niveau Error en provenance du logger racine.
Avec une hiérarchie de loggers, vous pouvez initialement ne pas assigner des niveaux aux loggers nommés. Ensuite, lors de l’exécution d’une application, on pourra définir sélectivement le niveau pour le ou les loggers appropriés, afin de contrôler un domaine plus large ou plus étroit avec un petit nombre de niveaux assignés. Cette façon de faire simplifie grandement le contrôle à l’exécution de quelles requêtes de log sont validées.
Quand une requête de log est validée, Log4i appelle le ou les appenders attachés au logger auteur de la requête, puis commence à s’intéresser aux loggers ancêtres, en appelant leur(s) appender(s) attaché(s). A noter que le niveau de requête n’est pas revérifié par rapport aux niveaux respectifs des niveaux ancêtres, pendant ce processus. Après qu’une requête ait été validée pour le logger auteur de la requête (en utilisant le niveau assigné ou hérité du logger), les appenders de tous les ancêtres sont appelés.
Cette fonction permet, par exemple, d’avoir un ancêtre d’ordre supérieur qui ajoute toutes les requêtes validées à un fichier, tandis qu’un ancêtre d’ordre inférieur, plus étroitement ciblé, peut ajouter à l’affichage quand on débogue une routine unique.
Log4i fournit une option qui permet de limiter les ancêtres dont les appenders sont appelés, à l’aide de la procédure SetLoggerAdditivity, comme dans l’exemple suivant :
SetLoggerAdditivity( LoggerId : Log4i.FALSE );
Après avoir traité les appenders pour un logger avec le additivity flag sur off, Log4i cesse tout traitement ultérieur des loggers ancêtres.
Téléchargez cette ressource

Comment accélérer la transformation des environnements de travail ?
Dans un monde professionnel en pleine mutation, la mobilité, l’efficacité énergétique, la sécurité et l’intelligence embarquée sont devenues des critères décisifs pour les équipements informatiques. Découvrez comment les nouveaux PC Microsoft Surface dotés des processeurs Snapdragon X Series s’imposent comme une réponse stratégique aux nouveaux enjeux IT.
Les articles les plus consultés
Les plus consultés sur iTPro.fr
- Les banques passent à l’action avec l’IA générative et le cloud
- DSI en assurance : gardien du temple ou moteur de la transformation ?
- Ransomware : persistance des cyberattaques à l’échelle mondiale
- Cybersécurité : l’IA générative rebat les cartes du cybercrime
- Le World Cyber Ranking, 1er classement mondial de la cybersécurité des entreprises
