Les niveaux de journalisation
Les niveaux d'un journal applicatif de TRACE à FATAL, le seuil qui filtre, ce qu'on écrit à chaque niveau, l'anatomie d'une ligne et la différence avec un simple affichage à l'écran.
- 29 cartes
- 5 thèmes
- Gratuit
Le programme, thème par thème
Le poids de chaque thème suit celui que lui donne l'examen.
- Notions
- Questions
- Ranger et relier
- Mises en situation
- Comprendre
Quelques cartes du deck
Journal applicatif : de quoi s'agit-il ?
Voir la réponse
Suite d'événements datés qu'un programme écrit pendant son exécution, dans un fichier ou un flux, pour qu'on puisse comprendre après coup ce qui s'est passé.
En production, personne ne regarde le programme tourner et un débogueur n'est pas branché : le journal est la seule trace de ce qui s'est passé.
Le seuil est réglé sur INFO. Quels messages ce code écrit-il dans le journal ?
```java
log.trace("entrée dans total()");
log.debug("i = {}", i);
log.info("commande {} créée", id);
log.warn("stock bas : {}", stock);
log.error("paiement refusé", e);`- Commande créée, stock bas, paiement refusé
- Seulement le stock bas et le paiement refusé
- Les cinq messages, du plus détaillé au plus grave
- Seulement la commande créée, au niveau INFO
Voir la réponse
Commande créée, stock bas, paiement refusé
Le seuil INFO garde INFO, WARN et ERROR, et écarte TRACE et DEBUG. Stock bas et paiement refusé seuls correspondraient à un seuil WARN.
Du moins grave au plus grave, les niveaux viennent dans l'ordre TRACE, DEBUG, …, …, ERROR.
Voir la réponse
Du moins grave au plus grave, les niveaux viennent dans l'ordre TRACE, DEBUG, INFO, WARN, ERROR.
INFO raconte la vie normale du service, WARN signale une anomalie absorbée. Un seuil à un niveau garde ce niveau et tous les suivants.
Niveau de journalisation : de quoi s'agit-il ?
Voir la réponse
Gravité attachée à un message : TRACE, DEBUG, INFO, WARN, ERROR (et FATAL dans certaines bibliothèques), du plus détaillé au plus grave.
Il permet de trier les messages : on garde les alertes en production et on active le détail seulement quand on enquête. SLF4J, par exemple, s'arrête à ERROR.
Un service en production remplit le disque en une nuit avec des millions de lignes DEBUG. Que faire ?
- Supprimer tous les appels de journalisation du code
- Remplacer les appels par des
System.out.println - Passer tous les messages au niveau ERROR dans le code
- Relever le seuil à INFO dans la configuration
Voir la réponse
Relever le seuil à INFO dans la configuration
Le seuil sert exactement à cela : on règle le volume sans modifier le code, et on peut rebaisser le seuil à DEBUG le temps d'une enquête. Tout passer en ERROR noierait les vraies erreurs.