2
votes

Spring Boot: Comment désactiver la journalisation de démarrage Tomcat?

J'utilise Spring Boot 2.0.x avec Logback. Au démarrage de mon application (en utilisant un tomcat intégré), je vois plusieurs messages de journal INFORMATION (écrits en erreur standard) qui proviennent apparemment directement du tomcat intégré.

Contrairement au reste de ma journalisation, ces messages ne semblent pas être écrits par Logback. Les messages ont le contenu suivant:

Jan 08, 2019 3:13:00 PM org.apache.coyote.AbstractProtocol init
INFORMATION: Initializing ProtocolHandler ["http-nio-8080"]
Jan 08, 2019 3:13:00 PM org.apache.catalina.core.StandardService startInternal
INFORMATION: Starting service [Tomcat]
Jan 08, 2019 3:13:00 PM org.apache.catalina.core.StandardEngine startInternal
INFORMATION: Starting Servlet Engine: Apache Tomcat/8.5.34
Jan 08, 2019 3:13:01 PM org.apache.catalina.core.ApplicationContext log
INFORMATION: Initializing Spring embedded WebApplicationContext

Je ne suis intéressé par rien de tout cela, c'est juste du bruit. Comment puis-je me débarrasser de ces journaux? J'ai essayé toutes sortes de solutions, mais rien n'a fonctionné jusqu'à présent.


2 commentaires

Pouvez-vous essayer les suggestions fournies dans baeldung.com/spring-boot-disable-console -logging ?


Merci, je les ai tous essayés un par un, mais le tomcat intégré continue de se connecter ...


4 Réponses :


1
votes

Vous pouvez définir les paramètres suivants dans application.properties :

logging.group.tomcat = org.apache.catalina, org.apache.coyote, org.apache.tomcat logging.level.tomcat=OFF

Puisque le Tomcat intégré utilise le JUL, cela définira le niveau de journalisation JUL concernant les classes liées à Tomcat sur OFF .


2 commentaires

Je pense qu'il devrait être réglé sur OFF pour désactiver tous les messages? TRACE montrera tout, petite erreur, je pense.


Autant que je sache, Tomcat intégré utilise JULI, un fork de JUL en quelque sorte. Je viens d'essayer votre solution, malheureusement cela n'a pas fonctionné - les journaux apparaissent toujours sur ma console ...



0
votes

Regardez le nom d'utilisateur (dans le cas de Log4j (2)) apparaissant dans la console.

Ensuite, copiez le nom et ajoutez-le au préfixe logging.level. dans votre fichier application.properties .

Dans la capture d'écran ci-dessous, si je décommente la ligne de DispatcherServlet , la journalisation disparaît:

 entrez la description de l'image ici


0 commentaires

1
votes

D'accord, il m'a fallu environ 5 heures pour comprendre ceci:

  • Tomcat utilise JULI , un dérivé de java.util.logging
  • JULI lui-même est compatible avec java.util.logging , vous pouvez donc le configurer de la même manière
  • Au démarrage, le tomcat intégré ne se souciera d'aucun de vos paramètres de journalisation (du moins ce n'était pas le cas pour moi)

Le plan est le suivant: avant de démarrer mon chat à ressort, je devais faire ceci:

java.util.logging.Logger.getLogger("org.apache").setLevel(java.util.logging.Level.WARNING);

Cela indiquera java .util.logging (implémenté par JULI) pour propager uniquement les avertissements vers la console. Cela élimine tout le bruit de démarrage de tomcat, et toute autre journalisation sera effectuée par le cadre de journalisation de votre choix de toute façon (logback dans mon cas), donc cela ne devrait pas affecter du tout votre journalisation standard.


2 commentaires

Où avez-vous mis cette ligne de code? Dans la classe d'application principale?


Dans la méthode principale Java, avant (!) De démarrer l'application Spring Boot.



1
votes

Les journaux Apache juli peuvent être omis en définissant la propriété système du formateur java.util.logging sur une chaîne vide avant que SpringBootApplication ne démarre comme ceci

System.setProperty ("java.util.logging.SimpleFormatter.format", "");


0 commentaires