Spring-boot--列印sql引數 log4jdbc與logback配置(轉)
阿新 • • 發佈:2018-12-03
Spring-boot--列印sql引數 log4jdbc與logback配置
在開發過程中,常常需要驗證sql
語句,但是spring-boot-starter-data-jpa
只支援輸出sql不會輸出引數,為了方便,整合log4jdbc
。
一、引入依賴
<dependency> <groupId>com.googlecode.log4jdbc</groupId> <artifactId>log4jdbc</artifactId> </dependency>
- 1
- 2
- 3
- 4
二、資料庫配置
因為要使用log4jdbc
作為資料庫驅動,所以資料配置檔案也需要做相應的改動
spring.datasource.driver-class-name=com.mysql.jdbc.Driver
spring.datasource.url=jdbc:mysql://?characterEncoding=utf-8
- 1
- 2
需要由原來的配置改為
spring.datasource.driver-class-name=net.sf.log4jdbc.DriverSpy spring.datasource.url=jdbc:log4jdbc:mysql://host:port/dbname?characterEncoding=utf-8
- 1
- 2
三、log4jdbc
和logback
整合日誌過多的解決問題
log4jdbc
預設會列印所有sql操作資訊,包括建立連線、開啟事務、執行時長等,一般情況下不需要這麼多,我們只打印執行sql
日誌。
在application.properties
檔案中設定 logging.config=classpath:logging-spring.xml
,新建logging-spring.xml
檔案
<?xml version="1.0" encoding="UTF-8"?> <configuration debug="false"> <include resource="org/springframework/boot/logging/logback/console-appender.xml"/> <!--log4jdbc 日誌配置--> <logger name="jdbc.sqlonly" level="info"> </logger> <logger name="jdbc.audit" level="OFF"> </logger> <logger name="jdbc.resultset" level="OFF"> </logger> <logger name="jdbc.connection" level="OFF"> </logger> <logger name="jdbc.sqltiming" level="OFF"> <appender-ref ref="CONSOLE"/> </logger> </configuration>
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
appender-ref
可以指定日誌輸出方向,這裡使用spring-boot
預設日誌框架logback
自帶的配置。 level
級別為TRACE 、DEBUG 、INFO、WARN、ERROR、FATAL
,設定為OFF表示不列印。
四、sql列印前後對比
hibernate列印的sql
select
navmap0_.id as id1_2_,
navmap0_.create_time as create_t2_2_,
navmap0_.description as descript3_2_,
navmap0_.map_file_id as map_file4_2_,
navmap0_.name as name5_2_,
navmap0_.org_id as org_id6_2_,
navmap0_.update_time as update_t7_2_
from
nav_map navmap0_
order by
navmap0_.update_time desc limit ?,
?
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
log4jdbc
SELECT
navmap0_.id AS id1_2_,
navmap0_.create_time AS create_t2_2_,
navmap0_.description AS descript3_2_,
navmap0_.map_file_id AS map_file4_2_,
navmap0_. NAME AS name5_2_,
navmap0_.org_id AS org_id6_2_,
navmap0_.update_time AS update_t7_2_
FROM
nav_map navmap0_
ORDER BY
navmap0_.update_time DESC
LIMIT 2,
2