151 votes

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

La première fois que j'ai entendu parler des marqueurs, c'était en lisant :

http://slf4j.org/faq.html

J'ai vérifié les méthodes disponibles pour le Enregistreur objet :

et les interfaces trouvées :

Les informations plus approfondies que j'ai obtenues de :

mais je suis toujours confus... Notez que j'ai demandé pourquoi pas comment pour les utiliser, donc ce n'est pas un duplicata de :

UPDATE Il semble que lorsque vous utilisez des marqueurs, vous devez également écrire du code Java personnalisé au lieu d'effectuer la configuration dans la base de données. XML o .propriété des fichiers...

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"));

153voto

Ceki Points 8781

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

Les marqueurs peuvent être utilisés pour couleur ou marquer un simple déclaration de journal. Ce que vous faites de ces couleurs, c'est-à-dire des marqueurs, vous appartient entièrement. Cependant, deux modèles semblent être communs pour l'utilisation des marqueurs.

  1. Déclenchement : Un appender pourrait recevoir l'instruction d'effectuer une action en 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 l'icône NOTIFY_ADMIN quel que soit le niveau du journal. Voir déclenchement basé sur des marqueurs dans la documentation de logback. Vous pouvez également combiner les niveaux de journalisation et les marqueurs pour le déclenchement.

  2. Filtrage : Les marqueurs sont très utiles pour faire ressortir certaines déclarations précieuses du journal. Par exemple, vous pouvez colorier/marquer tous vos journaux relatifs à la persistance (dans divers et multiples fichiers de classe) avec la couleur "DB". Vous pouvez ensuite filtrer pour "DB" : désactiver la journalisation sauf pour les déclarations de journal marquées avec DB. Voir le chapitre sur les filtres dans la documentation de logback pour plus d'informations (recherchez MarkerFilter). Notez que le filtrage sur les marqueurs peut être effectué non seulement par logback mais aussi par les outils d'analyse de log.

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 d'enregistreurs modifiés. L'API SLF4J ne prend actuellement pas en charge les niveaux personnalisés. Pour ce qui est de l'option 2, le suffixage (ou le préfixage) des noms des enregistreurs est faisable si un ou deux enregistreurs doivent être modifiés. L'approche devient peu pratique dès que 3 loggers ou plus doivent être "sous-classés" car les fichiers de configuration associés deviennent ingérables.

Même si un seul marqueur peut déjà être très utile, la prochaine version de SLF4J, c'est-à-dire la version 2.0, autorisera plusieurs marqueurs par relevé de journal.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X