Spring Boot: Как отключить ведение журнала загрузки Tomcat? - PullRequest
0 голосов
/ 08 января 2019

Я использую Spring Boot 2.0.x с Logback. При запуске моего приложения (с использованием встроенного tomcat) я вижу несколько INFORMATION сообщений журнала (записанных со стандартной ошибкой), которые, очевидно, происходят непосредственно от встроенного tomcat.

В отличие от остальной части всех моих журналов, эти сообщения, похоже, не записываются Logback. Сообщения имеют следующее содержание:

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

Меня это не интересует, это просто шум. Как мне избавиться от этих журналов? Я перепробовал все виды решений, но пока ничего не получалось.

Ответы [ 3 ]

0 голосов
/ 13 января 2019

Посмотрите на Loggername (в случае Log4j (2)), появляющееся в консоли.

Затем скопируйте имя и добавьте его в logging.level. в вашем application.properties файле.

На снимке экрана ниже, если я раскомментирую строку DispatcherServlet , регистрация исчезнет:

enter image description here

0 голосов
/ 21 января 2019

Хорошо, мне понадобилось около 5 часов, чтобы понять это:

  • Tomcat использует JULI, производное от java.util.logging
  • Сам JULI совместим с java.util.logging, поэтому вы можете настроить его таким же образом
  • При запуске встроенный tomcat не будет заботиться о каких-либо ваших настройках регистрации (по крайней мере, это не для меня)

Результат таков: перед тем, как я запустил своего кота, встроенного в пружину, я должен был сделать следующее:

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

Это даст указание java.util.logging (реализовано JULI) распространять только предупреждения на консоль. Это устраняет все шумы при запуске tomcat, и все остальные записи в журнал будут выполняться в любом случае по вашему выбору (logback в моем случае), так что это никак не должно повлиять на ваше стандартное ведение журнала.

0 голосов
/ 08 января 2019

Вы можете установить следующие параметры в application.properties:

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

Поскольку во встроенном Tomcat используется JUL, для уровня ведения журнала JUL, относящегося к классам, связанным с Tomcat, будет установлено значение OFF.

...