как регистрировать операторы sql в spring-boot


Я новичок в spring-boot.

Я хочу записать 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 в консоли, но они не отображаются в приложении для файлов.бревно. Файл содержит только основные журналы из spring.

что я должен сделать, чтобы увидеть инструкции sql в файле журнала?

8 184

8 ответов:

попробуйте использовать это в файле Properties:

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

это работает и для stdout:

spring.jpa.properties.hibernate.show_sql=true
spring.jpa.properties.hibernate.use_sql_comments=true
spring.jpa.properties.hibernate.format_sql=true

до значения log:

spring.jpa.properties.hibernate.type=trace 

просто добавьте это в application.properties.

это работает для меня (YAML):

spring:
  jpa:
    properties:
      hibernate:
        show_sql: true
        format_sql: true
logging:
  level:
    org:
      hibernate:
        type: trace

пожалуйста, используйте:

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

для драйвера MS-SQL server (драйвер Microsoft SQL Server JDBC).

попробуйте использовать:

logging.level.com.microsoft.sqlserver.jdbc=debug

в вашем приложении.файл свойств.

мои личные предпочтения выделяют:

logging.level.com.microsoft.sqlserver.jdbc=info
logging.level.com.microsoft.sqlserver.jdbc.internals=debug

можно посмотреть на эти ссылки для ссылки:

Если у вас есть 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>

по данным документация - это:

spring.jpa.show-sql=true # Enable logging of SQL statements.

Если вы хотите просмотреть фактические параметры, используемые для запроса, вы можете использовать

logging.level.org.hibernate.SQL=DEBUG
logging.level.org.hibernate.type.descriptor.sql=TRACE
обратите внимание, что фактическое значение параметра отображается как binding parameter......
   2018-08-07 14:14:36.079 DEBUG 44804 --- [           main] org.hibernate.SQL                        : select employee0_.id as id1_0_, employee0_.department as departme2_0_, employee0_.joining_date as joining_3_0_, employee0_.name as name4_0_ from employee employee0_ where employee0_.joining_date=?
    2018-08-07 14:14:36.079 TRACE 44804 --- [           main] o.h.type.descriptor.sql.BasicBinder      : binding parameter [1] as [TIMESTAMP] - [Tue Aug 07 00:00:00 SGT 2018]