前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >log4jdbc记录完整的SQL信息

log4jdbc记录完整的SQL信息

作者头像
BUG弄潮儿
发布2020-06-15 17:06:42
1K0
发布2020-06-15 17:06:42
举报
文章被收录于专栏:JAVA乐园JAVA乐园

0x01:log4jdbc的简单介绍

  使用log4jdbc在不改变原有代码的情况下,就可以日志文件中输出的SQL语句和JDBC执行耗时情况。

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

0x02: log4jdbc的使用

  下载log4jdbc的jar包log4jdbc-1.2.jar以及依赖的相关Jar包log4j-1.2.17.jar、slf4j-api-1.6.0.jar、slf4j-log4j12-1.7.7.jar

在日志配置文件中定义相关logger对象的输出级别和输出器

在log4jdbc中定义了以下五个日志对象:

  • jdbc.sqlonly : 记录系统执行过的sql语句
  • jdbc.sqltiming : 记录sql执行的时间,可以分析耗时的sql语句
  • jdbc.audit : 记录除了ResultSet外的所有JDBC调用情况。一般不需要
  • jdbc.resultset : 记录返回结果集信息
  • jdbc.connection: 记录数据库连接和释放信息,可记录当前的数据库连接数,便于诊断连接是否释放

0x03: 配置log4j的log4j.properties的配置文件

代码语言:javascript
复制
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

0x04: 修改jdbc.properties配置文件的url和driverClassName

代码语言:javascript
复制
jdbc.url=jdbc:log4jdbc:mysql://localhost:3306/xdptest
jdbc.driverClassName=net.sf.log4jdbc.DriverSpy
jdbc.username=root
jdbc.password=root
jdbc.filters=stat
jdbc.maxActive=200
jdbc.initialSize=20
jdbc.maxWait=60000
jdbc.minIdle=10
jdbc.timeBetweenEvictionRunsMillis=60000
jdbc.minEvictableIdleTimeMillis=300000
jdbc.validationQuery=SELECT 'x'
jdbc.testWhileIdle=true
jdbc.testOnBorrow=false
jdbc.testOnReturn=false
jdbc.removeAbandoned=false
jdbc.removeAbandonedTimeout=1800
jdbc.logAbandoned=true

主要是

  • com.mysql.jdbc.Driver 换成 net.sf.log4jdbc.DriverSpy
  • jdbc:mysql:// 换成 jdbc:log4jdbc:mysql://
本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2020-04-27,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 BUG弄潮儿 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
云数据库 SQL Server
腾讯云数据库 SQL Server (TencentDB for SQL Server)是业界最常用的商用数据库之一,对基于 Windows 架构的应用程序具有完美的支持。TencentDB for SQL Server 拥有微软正版授权,可持续为用户提供最新的功能,避免未授权使用软件的风险。具有即开即用、稳定可靠、安全运行、弹性扩缩等特点。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档