在开发过程中,常常需要验证sql
语句,但是spring-boot-starter-data-jpa
只支持输出sql不会输出参数,为了方便,集成log4jdbc
。
<dependency>
<groupId>com.googlecode.log4jdbc</groupId>
<artifactId>log4jdbc</artifactId>
</dependency>
因为要使用log4jdbc
作为数据库驱动,所以数据配置文件也需要做相应的改动
spring.datasource.url=jdbc:log4jdbc:mysql://localhost:3306/eagleyesrisk_test2?useUnicode=true&characterEncoding=UTF-8&serverTimezone=Asia/Shanghai&useSSL=true
spring.datasource.driver-class-name=net.sf.log4jdbc.DriverSpy
#设置activiti 不然JOB打印
spring.activiti.async-executor-activate=false
设置文件 logback.xml
<logger name="org.springframework">
<level value="WARN" />
</logger>
<logger name="org.apache.shiro">
<level value="WARN" />
</logger>
<logger name="freemarker">
<level value="WARN" />
</logger>
<logger name="org.hibernate">
<level value="WARN" />
</logger>
<logger name="org.hibernate.SQL">
<level value="DEBUG" />
</logger>
<logger name="jdbc.audit">
<level value="OFF" />
</logger>
<logger name="jdbc.sqlonly">
<level value="info" />
</logger>
<logger name="jdbc.audit" >
<level value="OFF" />
</logger>
<logger name="jdbc.resultset">
<level value="OFF" />
</logger>
<logger name="jdbc.connection" >
<level value="OFF" />
</logger>
<root level="INFO">
<appender-ref ref="APP" />
<appender-ref ref="STDOUT" />
</root>
spring.datasource.driver-class-name=com.mysql.jdbc.Driver
spring.datasource.url=jdbc:mysql://?characterEncoding=utf-8
需要由原来的配置改为
spring.datasource.driver-class-name=net.sf.log4jdbc.DriverSpy
spring.datasource.url=jdbc:log4jdbc:mysql://host:port/dbname?characterEncoding=utf-8
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>
appender-ref
可以指定日志输出方向,这里使用spring-boot
默认日志框架logback
自带的配置。 level
级别为TRACE 、DEBUG 、INFO、WARN、ERROR、FATAL
,设置为OFF表示不打印。
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 ?,
?
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