Configuration de la journalisation dans Spring Boot avec SLF4J et Logback
Spring Boot utilise le framework Simple Logging Facade for Java ( SLF4J ) comme interface de journalisation. SLF4J fournit une API de journalisation générique qui peut être implémentée par différents frameworks de journalisation, tels que Logback, Log4j2 et java.util.logging.
Il existe plusieurs niveaux de journalisation , notamment TRACE, DEBUG, INFO, WARN et ERROR, qui peuvent être utilisés pour spécifier le niveau de détail à journaliser.

- TRACE : il s'agit du niveau de journalisation le plus détaillé, et il capture des détails précis tels que les appels de méthode, les valeurs de variable et le flux d'exécution. La journalisation TRACE doit être utilisée pour résoudre les problèmes complexes.
- DEBUG : Il capture des informations sur le comportement de l'application qui peuvent être utiles pour les problèmes de débogage. Ce niveau convient aux environnements de développement et de test, où il est important de disposer d'informations détaillées sur le comportement de l'application.
- INFO : Ce niveau est utilisé pour capturer les événements importants de l'application, tels que les messages de démarrage et d'arrêt, les connexions réussies des utilisateurs et les changements de configuration majeurs. Ce niveau doit être utilisé dans les environnements de production pour capturer des informations qui peuvent aider à identifier la cause première des problèmes.
- AVERTISSEMENT : ce niveau est utilisé pour capturer des événements potentiellement dangereux, tels que des tentatives de connexion infructueuses ou des paramètres de configuration incorrects. Ce niveau doit être utilisé pour capturer les événements qui nécessitent une attention mais qui n'indiquent pas nécessairement un problème critique.
- ERREUR : ce niveau est utilisé pour capturer les erreurs critiques qui nécessitent une attention immédiate, telles que les pannes d'application ou la corruption de données.
Pour activer la journalisation, importez Logger et LoggerFactory depuis org.slf4j.

Si aucune configuration n'est définie dans application.properties , le niveau de journalisation sera par défaut INFO.
Sortir:

Les messages DEBUG et TRACE n'étaient pas affichés car le niveau de journalisation de l'application est défini sur INFO, qui a un niveau de priorité supérieur aux deux.
Si le niveau de journalisation était défini sur ERROR, seul le message d'erreur serait affiché car il s'agit du niveau de journalisation le plus élevé des 5 niveaux intégrés.


Nous pouvons personnaliser le modèle de journalisation avec la configuration ci-dessous dans le fichier application.properties.
Sortir:

Journalisation personnalisée avec Logback
La journalisation par défaut est suffisante pour démarrer et à des fins POC. Mais dans les applications d'entreprise réelles, nous avons besoin d'un contrôle plus précis de la journalisation avec d'autres exigences complexes. Dans ce cas, une configuration de journalisation dédiée est appropriée.
Spring boot utilise par défaut logback, donc pour personnaliser son comportement, nous devons ajouter logback.xml dans classpath et définir la personnalisation sur le fichier.
Le fichier de configuration ci-dessous utilise l'appender de console et l'appender de fichier roulant.

ConsoleAppender enregistre la sortie en fonction du modèle donné à l'intérieur de ConsoleAppender.
Dans RollingFileAppender
, créera un nouveau fichier pour stocker le fichier journal en fonction de la stratégie de roulement. Dans la politique de roulement, nous spécifions le modèle de nom de fichier, la taille maximale du fichier, la taille totale de tous les fichiers d'archive et les jours de conservation du fichier.
Si vous souhaitez apprendre Spring Security Authentication & Authorization :
Les 10 meilleurs cours pour apprendre Spring Security et OAuth2 avec Spring Boot pour les développeurs Java en 2023Reportez-vous à ces liens : Accès basé sur les rôles de Spring Security avec Spring Boot && Spring Security Authentication & Authorization avec JWT