log4net: Configurez pour ignorer les messages d’une classe spécifique

Est-il possible de faire en sorte que la configuration log4net ignore une classe spécifique? Par exemple, nous créons généralement un journal dans chaque classe. Similaire à ceci:

private static readonly ILog Log = log4net.LogManager.GetLogger("MyClass"); 

Le problème est que MyClass enregistre une quantité extrême de données et qu’il est difficile de trouver des informations sur d’autres classes. C’est un autre dev qui utilise MyClass donc je ne peux pas simplement entrer et changer les fichiers journaux, mais dans mon environnement, je voudrais les ignorer.

Puis-je définir mon fichier de configuration pour ignorer les messages d’une classe spécifique?

Bien sûr, utilisez un filtre.

Voici l’extrait de code publié sur le blog, pour référence ultérieure – tout le mérite de l’auteur de cet article:

          

Un filtre fonctionne certainement, mais je préférerais désactiver l’enregistreur (ou la hiérarchie des enregistreurs) directement comme ceci:

           

En supposant que YourNameSpace.WithNoLogging est un espace de noms, la configuration affichée désactive la journalisation sur tout l’espace de noms. Le deuxième “exemple” désactive la journalisation pour votre classe (selon votre question).

Je suggère d’utiliser également des filtres . Cependant, comme j’ai eu du mal à trouver l’image complète lorsque j’essayais d’implémenter le filtre, je Configutation file un extrait du Configutation file j’ai créé, qui indique où vont les filtres.

Le filtre que vous voulez dans ce cas serait

log4net.Filter.LoggerMatchFilter —- (Correspond à un début du nom du consignateur)

Dans le fichier de config de Log4Net, il est important que vous placiez vos tags et que leur priorité soit importante. Donc, dans ce cas, la vient après la ouverture et avant la .

    

Dans cette technique, vous pouvez avoir plusieurs appenders que vous pouvez redirect les résultats de journalisation d’un enregistreur spécifique vers un appender distinct au lieu de les ignorer. Comme un appender pour tous les journaux et un pour les journaux filtrés pour une class spécifique.

Vous voudrez peut-être essayer d’appliquer une catégorie à vos propres messages Essayez ce sujet: Comment append un préfixe de catégorie au message log4net?