Comment désactiver la journalisation de la console au démarrage du printemps

Comment désactiver la journalisation de la console au démarrage du printemps

1. Vue d'ensemble

En règle générale, les journaux de la console nous permettent de déboguer notre système de manière simple et intuitive. Néanmoins, il arrive parfois que nous ne souhaitions pas activer cette fonctionnalité dans notre système.

Dans ce tutoriel rapide,we’ll see how to avoid logging to the console when running a Spring Boot application.

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 frameworks de journalisation pour Spring Boot, nous vous suggérons de consulter notre didacticielLogging in Spring Boot.

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

Si notre projet utiliseSpring Boot starters, alors la dépendancespring-boot-starter-logging sera également incluse.

Ce démarreur particulier configureLogback comme framework par défaut et enregistre initialement uniquement sur la console par défaut.

Cette configuration peut être personnalisé en ajoutant un fichierlogback-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 configurationlogging.file dans notre fichierapplication.properties :

logging.file=example-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 leconsole-appender.xml in dans notre fichier XML , donc une balise videconfiguration ferait également l'affaire.

Alternatively,we can avoid creating the XML file by overriding the default configuration with application properties.

Par exemple, nous pouvons potentiellement utiliser la spropertylogging.pattern.console :

logging.pattern.console=

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

This approach, of course, isn’t as clean and solid as the previous one. 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 surOFF:

logging.level.root=OFF

3. Comment éviter de se connecter à 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 fichierlog4j2.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 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 Java Util

La journalisation Java Util (ou simplement «JUL») peut ne pas être la solution de journalisation la plus populaire pour les applications Spring Boot.

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 par défautlogging.properties in notre dossier de ressources:

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

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

logging.file=true

5. Conclusion

Grâce à ces courts exemples, nous pouvons désormais désactiver les journaux de la console dans notre application en toute simplicité, quel que soit le cadre de journalisation que nous utilisons.

Comme toujours, nous pouvons trouver les implémentations des exemples dansour Github repository.