首页 > 数据库技术 > 详细

SSM中使用log4jdbc记录SQL信息

时间:2019-02-12 10:14:13      阅读:236      评论:0      收藏:0      [点我收藏+]

一、log4jdbc的简单介绍

  使用log4jdbc在不改变原有代码的情况下,就可以收集执行的SQL文和JDBC执行情况

  平时开发使用的ibatis,hibernate,spring jdbc的sql日志信息,有一点个缺点是占位符与参数是分开打印的,如果想要拷贝sql至PLSQL Developer客户端直接执行,需要自己拼凑sql。而log4jdbc是在jdbc层的一个日志框架,可以将占位符与参数全部合并在一起显示,方便直接拷贝sql在PLSQL Developer等客户端直接执行,加快调试速度。

二、log4jdbc的使用

  在pom.xml中添加log4jdbc的引用

  

 <dependency>
      <groupId>com.googlecode.log4jdbc</groupId>
      <artifactId>log4jdbc</artifactId>
      <version>1.2</version>
 </dependency>

  

  新建log4j.properties的配置文件,内容如下所示:

log4j.logger.jdbc.sqlonly=DEBUG,console
log4j.appender.console=org.apache.log4j.ConsoleAppender 
log4j.appender.console.layout=org.apache.log4j.PatternLayout
log4j.appender.console.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss.SSS} %m%n%n
log4j.logger.jdbc.sqltiming=INFO,console  
log4j.logger.jdbc.connection=INFO,console

  修改mysqljdbc.properties配置文件的url和driverClassName如下

jdbc.driver=net.sf.log4jdbc.DriverSpy
#数据库地址
jdbc.url=jdbc:log4jdbc:mysql://localhost:3306/tmall_ssm?useUnicode=true&characterEncoding=utf8
#用户名
jdbc.username=root
#密码
jdbc.password=admin
#最大连接数
jdbc.maxPoolSize=30
#最小连接数
jdbc.minPoolSize=10
#关闭连接后不自动commit
jdbc.autoCommitOnClose=false
#获取连接超时时间
jdbc.checkoutTimeout=10000
#当获取连接失败重试次数
jdbc.acquireRetryAttempts=2

经过这样的配置之后,就可以使用log4jdbc记录应用系统执行的SQL信息了。

重新启动SSM程序进行测试,可以看到,log4jdbc记录出了SQL的执行的时间,执行时的参数以及执行耗时。这对于我们在开发中查找SQL错误是非常有帮助的。

技术分享图片

 

本文大部分内容参考自

孤傲苍狼的博文

使用log4jdbc记录SQL信息

 

SSM中使用log4jdbc记录SQL信息

原文:https://www.cnblogs.com/lovelee/p/10363879.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!