5

Как зарегистрировать SQL-запросы в Spring Boot?

13

Я хочу записывать SQL-запросы в файл.

У меня есть следующие настройки в файле application.properties:

spring.datasource.url=...
spring.datasource.username=user
spring.datasource.password=1234
spring.datasource.driver-class-name=net.sourceforge.jtds.jdbc.Driver

spring.jpa.show-sql=true
spring.jpa.properties.hibernate.format_sql=true

security.ignored=true
security.basic.enabled=false

logging.level.org.springframework.web=INFO
logging.level.org.hibernate=INFO
logging.file=c:/temp/my-log/app.log

Когда я запускаю свое приложение командой:

cmd> mvn spring-boot:run

Я вижу SQL-запросы в консоли, но они не появляются в файле app.log. В файле содержатся только базовые логи от Spring.

Что мне нужно сделать, чтобы увидеть SQL-запросы в лог-файле?

4 ответ(ов)

6

Попробуйте использовать следующие настройки в вашем файле свойств:

logging.level.org.hibernate.SQL=DEBUG
logging.level.org.hibernate.type.descriptor.sql.BasicBinder=TRACE

Эти параметры позволят вам включить отладочный уровень логирования для SQL-запросов Hibernate, а также трассировку для связывания параметров SQL. Это поможет вам лучше понимать, что происходит при выполнении запросов к базе данных.

0

Для того чтобы включить логирование SQL-запросов и их параметров в приложении, использующем Spring и Hibernate, вам нужно настроить файл конфигурации приложения application.properties (или application.yml, если вы используете YAML). Добавьте следующие строки к вашему файлу конфигурации:

logging.level.org.hibernate.SQL=DEBUG
logging.level.org.hibernate.type=TRACE
spring.jpa.show-sql=true

Вот что делает каждая из этих строчек:

  1. logging.level.org.hibernate.SQL=DEBUG – устанавливает уровень логирования для SQL-запросов на уровень DEBUG, что означает, что будут выводиться сами SQL-запросы, выполненные Hibernate.

  2. logging.level.org.hibernate.type=TRACE – устанавливает уровень логирования для параметров запросов на уровень TRACE, что позволит видеть подробности о типах и значениях параметров, передаваемых в SQL.

  3. spring.jpa.show-sql=true – включает отображение SQL-запросов в консоли, что полезно для отладки и анализа выполненных запросов.

После внесения этих изменений перезапустите ваше приложение, и вы сможете видеть информацию о SQL-запросах и их параметрах в логах.

0

Если у вас есть файл logback-spring.xml или что-то подобное, добавьте следующий код в него:

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

Это работает для меня.

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

<logger name="org.hibernate.type.descriptor.sql" level="trace">
    <appender-ref ref="file" />
</logger>
0

Для Hibernate 6, чтобы включить вывод SQL-запросов и их параметров в логах, вам нужно добавить следующие настройки в ваш application.properties:

spring.jpa.properties.hibernate.show_sql=true
logging.level.org.hibernate.orm.jdbc.bind=trace

Первая строка spring.jpa.properties.hibernate.show_sql=true отвечает за отображение сгенерированных SQL-запросов в консоли. Вторая строка logging.level.org.hibernate.orm.jdbc.bind=trace позволяет выводить информацию о привязке параметров к запросам, что может быть очень полезно для отладки. Убедитесь, что вы настроили уровень журналирования соответствующим образом, чтобы увидеть все необходимые детали.

Чтобы ответить на вопрос, пожалуйста, войдите или зарегистрируйтесь