Publié le 04/01/2019, rédigé par Davy CLAISSE

Logs & Bonnes Pratiques

Comment utiliser les différents niveaux de logs ?

Préambule

Il s'agit ici d'une modalité d'utilisation des logs que nous employons chez ITAMETIS. La pratique fonctionne bien pour nos produits et notre façon de gérer nos productions. Cela peut être différent en fonction de votre contexte et de vos contraintes.

Les différents niveaux de logs

Tous nos logs sont produits à partir de l'interface/façade SLF4J. Celle-ci expose des méthodes permettant l'écriture de logs sur cinq niveaux décroissants de criticité :

À quoi correspond chaque niveau ?

Commençons du niveau le moins critique jusqu'au plus critique.

TRACE

Ce niveau est à destination des Développeurs et uniquement eux. Il a pour vocation de se substituer à un mode debug impossible sur un serveur en production et d'en retranscrire chaque changement de valeur.

À titre d'exemple ce niveau contient :

DEBUG

Ce niveau est à destination des Admin-sys et éventuellement des Développeurs lorsqu'ils aident au dépannage. Le but est de fournir à celui qui assure l'état de la production les moyens de comprendre ce qui est en train de se passer au niveau des composants. Si le niveau TRACE correspond à un debugger activé en mode pas-à-pas, le niveau DEBUG se contentrait d'afficher uniquement les valeurs aux points d'arrêts.

À titre d'exemple ce niveau contient :

INFO

Ce niveau est à destination du Métier et des équipes de Sécurité. Le but est de fournir une vision permettant de comprendre quel utilisateur, a fait quoi, à quelle heure, sur quelles données, avec quelles saisies, a obtenu quel résultat, etc.

À titre d'exemple ce niveau contient :

WARN

Ce niveau est à destination de Tous. Il a pour objectif d'enregistrer l'occurrence d'une erreur tout en sachant que l'application a su "retomber sur ses pattes". La stabilité de l'application, la cohérence et l'intégrité de ses données ne sont pas atteintes, cependant un utilisateur n'a pu obtenir de résultat à sa demande.

En général, un nombre important de warning conduira à un erreur.

À titre d'exemple ce niveau contient :

ERROR

Ce niveau est à destination de Tous. Il a pour objectif de tracer qu'une erreur grave s'est produite et que l'application est potentiellement en état instable. Cet historique doit permettre de reconstituer ce qui s'est mal passé mais également de corriger manuellement l'état de l'application si les données étaient devenues incohérentes ou incomplètes.

À titre d'exemple ce niveau contient :

Conclusion

Il faut bien comprendre qu'il n'y a pas de vérité générale sur comment produire et gérer ses logs mais qu'il est possible d'affecter à chaque niveau un type d'utilisation précis. En faisant cela, le débuggage et le support s'en retrouveront grandement simplifiés.