Logback logger, чтобы показать Hibernate SQL должен быть заглавными буквами - PullRequest
0 голосов
/ 18 октября 2018

У меня есть приложение Spring Boot со следующей настройкой в ​​logback-spring.xml

<logger name="org.hibernate.sql" level="DEBUG" additivity="false">
    <appender-ref ref="CONSOLE"/>
</logger>

Но это не регистрирует сгенерированный SQL, если я не изменю sql на прописные, как это

<logger name="org.hibernate.SQL" level="DEBUG" additivity="false">
    <appender-ref ref="CONSOLE"/>
</logger>

, который затем генерирует лог-операторы, подобные этому

...org.hibernate.SQL                        : select count(disabled0_.user)

Также стоит отметить, что IntelliJ не ссылается ни на что, когда я намекаю на SQL в имени регистратора.Он связывается с пакетом при наведении на org.hibernate, но останавливается на SQL.Но он ссылается на другие, более конкретные классы, такие как этот

<logger name="org.hibernate.type.descriptor.sql.BasicBinder" level="TRACE" additivity="false" >
    <appender-ref ref="CONSOLE"/>
</logger>

, в этом, наведение над BasicBinder делает ссылку на класс и приводит к таким операторам, как

o.h.type.descriptor.sql.BasicBinder      : binding parameter [1] as [VARCHAR]

Почему SQL должен быть прописным, чтобы работать?

Я использую spring-boot-starter-data-jpa:1.5.10.RELEASE

1 Ответ

0 голосов
/ 18 октября 2018

SQL должен быть в верхнем регистре, потому что имя регистратора чувствительно к регистру.См. этот ответ .

IntelliJ не может связываться с классом, потому что на самом деле это не класс, а только имя регистратора Hibernate.По соглашению имена регистраторов являются именами классов, но это не обязательно, они могут быть любыми строками.

...