3.25 Règles-logs
3.25.1 - Règles des logs
Les règles impérieuses sont :
- aucune donnée personnelle ne doit être logguée. Mais il peut être utile, durant les tests, de consulter le détail des données générées. Donc, les données interdites en production peuvent être loggées en niveau TRACE si et seulement si une ligne de log WARNING est ajoutée dans la classe et générée dès le début du micro-service pour avertir du problème (cf. ValidationSoumissionServiceImpl)
- en cas d’instanciation d’une exception volontairement imprécise (pour ne pas divulguer les mécaniques internes des micro-service - cf. ValidationSoumissionServiceImpl), une ligne de log ERROR précisant le problème peut être générée à condition qu’elle apporte une information supplémentaire et ne contienne pas la stacktrace de l’exception envoyée.
- en cas d’instanciation d’une exception volontairement imprécise + dans un catch d’exception + une erreur ne générant pas une log d’erreur (sécurité par exemple - OidcServiceImpl, il faut avoir un moyen de logguer l’exception de base. Dans ce cas, il faut ajouter un log DEBUG contenant la stacktrace.
- en cas de log d’une donnée venant du navigateur (paramètre d’URL, donnée soumise dans un POST, …) avec une sévirité INFO, WARN ou ERROR, cette donnée doit passer dans LogUtil.nettoyerDonneesAvantDeLogguer avant d’être logguée
Les règles importantes sont :
- tout appel à un service externe au SI doit être tracé précisément avec le contenu de la requête et de la réponse
- toute information utile peut être générée