2 votes

Configurer le niveau du logger dans l'application Spring boot

Comment puis-je définir le niveau du logger de débogage pour désactiver l'écriture sur la console des messages de débogage de Springframework et d'Hibernate ?

Dans mon app.yml :

logging:
    file: direct_delivery.log
    level:
#        root: DEBUG
        springframework:
            web: INFO
        org:
            hibernate: INFO
    pattern:
        file: '%d{yyyy-MM-dd HH:mm:ss} - %msg%n'

Lorsque j'active le niveau de débogage pour l'application Root logger, tous les messages de débogage sont affichés, mais je dois vérifier uniquement mes messages.

UPD Mon fichier de configuration :

@Configuration
public class AppConfig {
    @Bean
    public Logger logger(){
        Logger log = LoggerFactory.getLogger("PlanningDirectDeliveryApplication");

        return log;
    }
}

0voto

Roman T Points 338

Définissez le logger Root au niveau WARN et votre paquet au niveau Debug . Hibernate peut également écrire dans stdout, ce qui n'est pas utilisable de cette manière, vous devez trouver une autre solution pour cela.

0voto

anothernode Points 2604

D'après votre question, je ne sais pas exactement ce que vous voulez consigner et ce que vous ne voulez pas consigner, mais en général, vous pouvez définir le niveau de consignation séparément pour chaque paquet du code de votre application, y compris votre code et celui des bibliothèques que vous utilisez.

Dans votre fichier de configuration ci-dessus, vous définissez le niveau de journalisation pour la fonction springframework.web et pour le org.hibernate pour INFO . Bien que, le paquet springframework.web n'existe pas dans Spring, donc cela sera probablement inefficace. Vous devriez probablement utiliser org.springframework.web à la place.

0voto

J-Alex Points 3438

org.hibernate - est essentiellement un nom de logger (généralement le nom de la classe source (souvent abrégé). Le nom du paquetage de Spring est erroné, donc vous n'avez pas de classes sources avec ce nom. C'est la raison pour laquelle votre logger est ignoré. org.springframework est un nom propre pour les paquets Spring.

Essayez de mettre en place un système d'enregistrement comme :

logging:
    file: direct_delivery.log
    level:
        root: DEBUG
        org:
            hibernate: INFO
            springframework:
                web: INFO
    pattern:
        file: '%d{yyyy-MM-dd HH:mm:ss} - %msg%n'

Ou

logging:
    file: direct_delivery.log
    level:
        root: DEBUG
        org.hibernate: INFO
        org.springframework.web: INFO
    pattern:
        file: '%d{yyyy-MM-dd HH:mm:ss} - %msg%n'

Peut-être que vous aimeriez déclarer la totalité org.springframework pas seulement web a DEBUG car la configuration du niveau de journalisation uniquement pour web vous obtiendrez toujours les journaux de la spring-web artefact d'autres Loggers avec des sources de classe différentes, par exemple org.springframework.http etc.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X