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

La première fois que j’entends parler de marqueurs quand on lit:

http://slf4j.org/faq.html

Je vérifie les méthodes disponibles pour l’object Logger :

  • http://www.slf4j.org/api/org/slf4j/Logger.html
  • http://logging.apache.org/log4j/2.x/log4j-api/apidocs/org/apache/logging/log4j/Logger.html

et interfaces trouvées:

  • http://www.slf4j.org/api/org/slf4j/Marker.html
  • http://logging.apache.org/log4j/2.x/log4j-api/apidocs/org/apache/logging/log4j/Marker.html

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

  • http://logback.qos.ch/manual/filters.html

mais toujours confus … Notez que je demande pourquoi , pas comment les utiliser, donc ce n’est pas un duplicata de:

  • Les meilleures méthodes d’utilisation des marqueurs dans SLF4J / Logback

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

MISE À JOUR 2 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")); 

Ceci est une version remaniée de ma réponse à la question ” Meilleures pratiques d’utilisation des marqueurs dans SLF4J / Logback “.

Les marqueurs peuvent être utilisés pour colorer ou marquer un seul relevé 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 des marqueurs.

  1. Déclenchement : Certains utilisateurs peuvent être invités à agir en présence d’un certain marqueur. Par exemple, SMTPAppender peut être configuré pour envoyer un courrier électronique chaque fois qu’un événement de journalisation est marqué avec le marqueur NOTIFY_ADMIN quel que soit le niveau de journalisation. Voir le déclenchement basé sur les marqueurs dans la documentation de récupération. Vous pouvez également combiner les niveaux de journal et les marqueurs pour le déclenchement.

  2. Filtrage : Vous pouvez par exemple colorer / marquer tous les journaux liés à la persistance (dans des fichiers de classes différents et multiples) avec la couleur “DB”. Vous pouvez ensuite filtrer pour “DB”: désactivez la journalisation à l’exception des instructions de journal marquées avec DB. Reportez-vous au chapitre sur les filtres dans la documentation de consignation pour plus d’informations (recherchez MarkerFilter).

Avant l’avènement des marqueurs, pour obtenir un comportement similaire, vous aviez l’option 1) d’utiliser des niveaux personnalisés 2) d’utiliser des noms de journal modifiés. L’API SLF4J ne prend actuellement pas en charge les niveaux personnalisés. Comme pour l’option 2, le suffixe (ou le préfixe) des noms de consignateurs est réalisable si un ou deux enregistreurs doivent être modifiés. L’approche devient peu pratique dès que trois enregistreurs ou plus doivent être “sous-classés” car les fichiers de configuration associés deviennent ingérables.