Que sont les marqueurs dans les frameworks de journalisation Java et quelle est la raison de les utiliser?


Première fois que j'entends parler de marqueurs lors de la lecture:

Http://slf4j.org/faq.html

J'ai vérifier les méthodes disponibles pour Enregistreur de objet:

Et trouvé interfaces:

Plus d'informations détaillées que je reçois de:

Mais toujours confus... Notez que je demande pourquoi, pas comment utiliser, donc ce n'est pas un doublon de:

UPDATE Semble que lorsque vous utilisez des marqueurs, vous devez également écrire du code Java personnalisé à la place de la configuration dans XML ou .propriété fichiers...

Mise à JOUR 2 à Partir de http://logback.qos.ch/manual/appenders.html#OnMarkerEvaluator

Marker notifyAdmin = MarkerFactory.getMarker("NOTIFY_ADMIN");
logger.error(notifyAdmin,
  "This is a serious an error requiring the admin's attention",
   new Exception("Just testing"));
Author: Henrik Aasted, 2013-05-29

1 answers

Ceci est une version remaniée ma réponseà la question " Meilleures pratiques pour l'utilisation des marqueurs dans SLF4J/Logback".

Marqueurs peuvent être utilisés pour couleur ou marquer un célibataire instruction de journal. Ce que vous faites avec ces couleurs, c'est-à-dire les marqueurs, dépend entièrement de vous. Cependant, deux modèles semblent être communs (le premier plus commun que le second) pour l'utilisation du marqueur.

  1. Déclenchement : Un appender pourrait être chargé de prendre une action dans la présence d'un certain marqueur. Par exemple, SMTPAppender peut être configuré pour envoyer un courriel chaque fois qu'un événement de journalisation est marqué avec le NOTIFY_ADMIN marqueur quel que soit le niveau de journal. Voirdéclenchement à base de marqueurs dans la documentation de logback. Vous pouvez également combiner des niveaux de journal et des marqueurs pour le déclenchement.

  2. Filtrage : Vous pouvez par exemple colorer/marquer tous vos journaux liés à la persistance (dans divers et multiples fichiers de classe) avec la couleur "DB". Vous pouvez alors filtrer pour "DB": désactivez la journalisation sauf pour les instructions de journal marquées avec DB. Voir le chapitre sur les filtres dans la documentation logback pour plus d'informations (rechercher MarkerFilter).

Avant l'avènement des marqueurs, pour obtenir un comportement similaire, vous aviez l'option 1) utiliser des niveaux personnalisés 2) utiliser des noms d'enregistreur modifiés. L'API SLF4J ne prend actuellement pas en charge les niveaux personnalisés. En ce qui concerne l'option 2, suffixer (ou préfixer) les noms des enregistreurs est réalisable si un ou deux enregistreurs doivent être modifier. L'approche devient peu pratique dès que 3 enregistreurs ou plus doivent être "sous-classés" car les fichiers de configuration associés deviennent ingérables.

 76
Author: Ceki, 2017-05-23 12:26:11