Comment désactiver la journalisation de la console dans Spring Boot

1. Vue d'ensemble

Habituellement, les journaux de la console nous donnent la possibilité de déboguer notre système de manière simple et intuitive. Néanmoins, il y a des occasions où nous ne voulons pas activer cette fonctionnalité dans notre système.

Dans ce tutoriel rapide, nous verrons comment éviter de se connecter à la console lors de l'exécution d'une application Spring Boot .

Nous allons garder les choses simples avec des exemples simples montrant comment y parvenir, que nous utilisions Logback, Log4js2 ou même le framework Java Util Logging.

Pour en savoir plus sur les cadres de journalisation pour Spring Boot, nous vous suggérons de consulter notre didacticiel Journalisation dans Spring Boot.

2. Comment désactiver la sortie de la console pour la connexion

Si notre projet utilise des démarreurs Spring Boot, la dépendance spring-boot-starter-logging sera également incluse.

Ce démarreur particulier configure Logback comme cadre par défaut et enregistre initialement uniquement sur la console par défaut.

Cette configuration peut être personnalisée en ajoutant un fichier logback-spring.xml à nos ressources.

Par exemple, configurons le XML de manière à désactiver la sortie de la console et à ne consigner que dans un fichier:

De plus, nous aurons besoin de la propriété de configuration logging.file dans notre fichier application.properties :

logging.file=baeldung-disabled-console.log

Remarque: ce qui désactive réellement la sortie de la console ici, c'est le fait que nous n'incluons pas le console-appender.xml dans notre XMLfichier, donc une balise de configuration vide ferait également l'affaire.

Alternativement, nous pouvons éviter de créer le XMLfichier en remplaçant la configuration par défaut par les propriétés de l'application .

Par exemple, nous pouvons potentiellement utiliser la propriété logging.pattern.console :

logging.pattern.console=

Cette propriété est traduite en propriété système CONSOLE_LOG_PATTERN , qui est ensuite utilisée par la configuration de la console par défaut de Spring.

Cette approche, bien sûr, n'est pas aussi claire et solide que la précédente . Ce n'est pas le but recherché de la propriété, donc ce «hack» peut ne pas être pris en charge par Logback à un moment donné.

De plus, nous pouvons désactiver toutes les activités de journalisation en définissant la valeur du niveau de journalisation racine sur OFF :

logging.level.root=OFF

3. Comment éviter de se connecter dans la console avec Log4j2

Comme nous le savons peut-être, Log4j2 prend en charge les formats XML, JSON, YAML ou de propriétés pour configurer son comportement de journalisation.

Par souci de simplicité, nous allons simplement montrer un exemple simple de fichier log4j2.xml cette fois.

Les autres formats respectent la même structure de configuration:

Comme pour la configuration de Logback, la raison pour laquelle le framework évite de se connecter à la console n'est pas la configuration «en soi», mais le fait que le Root Logger ne contient pas de référence à un Appender de console.

4. Comment désactiver la journalisation de la console pour la journalisation des utilitaires Java

Java Util Logging (ou simplement «JUL») n'est peut-être pas la solution de journalisation la plus populaire pour les applications Spring Boot de nos jours.

Quoi qu'il en soit, nous analyserons comment nous pouvons nous débarrasser des journaux de la console, au cas où le framework serait présent dans notre projet.

Tout ce que nous avons à faire est d'ajouter les valeurs suivantes au fichier logging.properties par défaut dans notre dossier de ressources:

handlers=java.util.logging.FileHandler java.util.logging.FileHandler.pattern=baeldung.log java.util.logging.FileHandler.formatter=java.util.logging.SimpleFormatter

Et incluez la propriété logging.file dans notre fichier application.properties . Toute valeur fera l'affaire:

logging.file=true

5. Conclusion

Avec ces courts exemples, nous pouvons désormais désactiver les journaux de la console dans notre application sans tracas, quel que soit le cadre de journalisation que nous utilisons.

Comme toujours, nous pouvons trouver les implémentations des exemples dans notre référentiel Github.