Запуск весеннего приложения с --debug не влияет на мои логгеры - PullRequest
3 голосов
/ 24 января 2020
private static final Logger myLogger = LoggerFactory.getLogger("NAME");

У меня есть пара логгеров, созданных, как в примере выше, дело в том, что когда я запускаю свое приложение Spring с --debug, myLogger.debug("something") не регистрируется, фактически используются только стандартные по умолчанию пружины / внутренние регистраторы из --debug args.

Как я могу заставить мои логгеры также использовать --<level> args?

Ответы [ 2 ]

4 голосов
/ 12 февраля 2020

Это по замыслу. Невозможно заставить другие регистраторы использовать отладку или любой другой уровень.

Из документов ,

Конфигурация журнала по умолчанию выводит сообщения на консоль по мере их записи. По умолчанию сообщения уровня ERROR, уровня WARN и INFO регистрируются. Вы также можете включить режим «отладки», запустив ваше приложение с флагом --debug.

$ java -jar myapp.jar --debug

[Примечание] Вы также можете укажите debug = true в вашем application.properties.

Когда включен режим отладки, некоторые основные средства ведения журнала (встроенный контейнер, Hibernate и Spring Boot) настраиваются для вывода дополнительной информации. Включение режима отладки не настраивает ваше приложение для регистрации всех сообщений с уровнем DEBUG.

В качестве альтернативы, вы можете включить режим «трассировки», запустив ваше приложение с флагом --trace (или trace = true в вашем application.properties). Это включает ведение журнала трассировки для некоторых основных регистраторов (встроенный контейнер, генерация схемы Hibernate и весь портфель Spring).

Однако вы можете использовать значение ключа ниже для регистрации всех сообщений отладки в свойствах приложения. файл

logging.level.root=debug

Подробнее о реализации здесь https://github.com/spring-projects/spring-boot/blob/master/spring-boot-project/spring-boot/src/main/java/org/springframework/boot/context/logging/LoggingApplicationListener.java

0 голосов
/ 12 февраля 2020

Привет. Ниже приведен пример журнала. xml, который должен быть помещен в папку ресурсов

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
    <logger name="<PACKAGE ON WHICH YOU WOULD LIKE TO ENABLE DEBUGGING (EXAMPLE: com.mypackage)>" level="DEBUG" />
   <root level="ERROR">
    <appender-ref ref="STDOUT" />
    <appender-ref ref="DAILY_ROLLING" />
    <appender-ref ref="SYSLOG" />
  </root>
</configuration>

Измените <PACKAGE ON WHICH YOU WOULD LIKE TO ENABLE DEBUGGING (EXAMPLE: com.mypackage))> на свой собственный пакет, для которого вы хотите включить DEBUG.

В качестве альтернативы, если вы хотите включить уровень root во всех пакетах, замените <root level="ERROR" > на <root level="DEBUG" >. И он будет печатать отладочные сообщения всего кода, даже если он напечатан в зависимостях. Кроме того, вы можете удалить <logger name="<PACKAGE ON WHICH YOU WOULD LIKE TO ENABLE DEBUGGING (EXAMPLE: com.mypackage)>" level="debug" />, если уровень журнала вашего пакета совпадает с root level.

...