SpringBoot

log4jdbc 使用

2018-01-04  本文已影响0人  马木木

像hibernate mybatis这些在打印sql时用了占位符表示参数,不能只能拷贝到数据库工具中执行,但是log4jdbc可以

1.引入jar包

可以在maven仓库和谷歌提供的网站下载
https://code.google.com/archive/p/log4jdbc/downloads
可以根据自身的环境下载相应版本的

由于其需要依赖slf4j所以你的项目中也需要有
我的系统的日志用的是log4j所以这里边包含的有

A.普通项目(非spring)

普通的项目比较简单 稍微修改数据库的驱动和连接池即可
修改前

oracle.jdbc.driver.OracleDriver
jdbc:oracle:thin:@192.168.7.14:1521:orcl

修改后

net.sf.log4jdbc.DriverSpy
jdbc:log4jdbc:oracle:thin:@127.0.0.1:1521:orcl

改变了驱动 在url中加入了log4jdbc

log4j.properties配置文件中加入参数

log4j.logger.jdbc.sqlonly=INFO  
log4j.logger.jdbc.sqltiming=ERROR  
log4j.logger.jdbc.audit=ERROR  
log4j.logger.jdbc.resultset=ERROR 
log4j.logger.jdbc.connection=ERROR

我这里配置的是只显示sql,要不然连resultset都打印出来多的一笔

B.spring项目(收集未尝试)

除了修改驱动和url还需要修改下datasource的定义

<bean id="dataSourceSpied" class="...">
    <property name="driverClass" value="${jdbc.driverClassName}"/>
    <property name="jdbcUrl" value="${jdbc.url}"/>
    <property name="user" value="${jdbc.username}"/>
    <property name="password" value="${jdbc.password}"/>
    ...
  </bean>


 <!-- 注意:其它引用(如事务管理配置),用dataSource,而不是dataSourceSpied -->
  <bean id="dataSource" class="net.sf.log4jdbc.Log4jdbcProxyDataSource">
    <constructor-arg ref="dataSourceSpied" />
  </bean>
上一篇 下一篇

猜你喜欢

热点阅读