Почему при входе в систему журнал разрешает вывод DEBUG через корневой регистратор, настроенный на уровень INFO?
Контекст представляет собой проект spring-boot-starter, использующий Hibernate.POM называет logback-classic и logback-core версии 1.2.0.Следующий конфигурационный файл находится в своем пути к классам (src / main / resources), устанавливает корневой регистратор на уровень INFO.
logback-test.xml:
<configuration scan="true" debug="false">
<appender name="FILE" class="ch.qos.logback.core.FileAppender">
<file>logs/test.log</file>
<encoder>
<pattern>%d{"yyyy-MM-dd'T'HH:mm:ss.SSSXXX", UTC} [%thread] %-5level %logger{5} - %msg%n</pattern>
</encoder>
</appender>
<root level="INFO">
<appender-ref ref="FILE" />
</root>
<logger name="org.hibernate.SQL" level="DEBUG" />
</configuration>
Большое количество сообщений INFO / WARN / ERROR поступает в файл во время теста JUnit.Но я удивлен, увидев следующий вывод DEBUG из org.hibernate.SQL, который является ЕДИНСТВЕННЫМ пакетом, который обеспечивает вывод уровня отладки.Я подумал, что мне придется установить корневой логгер на уровень DEBUG, чтобы это разрешить;Я полагал, что уровень INFO заблокирует его:
2018-09-18T13:31:02.596Z [http-nio-auto-1-exec-4] DEBUG o.h.SQL - delete from C_NOTIF_XYZ where ID=?
Под обложками кажется, что Hibernate использует org.jboss.logging.Logger через аннотации, см. https://github.com/hibernate/hibernate-orm/blob/master/hibernate-core/src/main/java/org/hibernate/internal/CoreLogging.java
Из-за использования аннотацийЯ не уверен, что нашел точный класс, который создает вывод Delete, показанный выше.По гуглу я вижу, что некоторые люди предлагают взаимодействие между классами шим-логов;но я не уверен.
Очень похожий вопрос SO (поэтому я не одинок :), но нет ответа: Используя logback, сообщения отладки все еще регистрируются, хотя для корневого уровня установлено значение "Ошибка""
Заранее благодарим за любые подсказки.