syslog4j mysql_Jfinal中使用日志框架输出完整sql语句信息

在开发过程中,我们希望控制台输出一些比较有价值的信息,JFinal开启调试模式以后,可以显示如下信息,这是极好的。JFinal action report -------- 2017-06-19 19:58:05 ------------------------------

Url         : GET /sys/terminal/getListData

Controller  : cn.ablefly.controller.sys.TerminalController.(TerminalController.java:1)

Method      : getListData

Interceptor : cn.ablefly.core.auth.interceptor.SysLogInterceptor.(SysLogInterceptor.java:1)

cn.ablefly.core.auth.interceptor.AuthorityInterceptor.(AuthorityInterceptor.java:1)

Parameter   : sord=asc  page=1  nd=1497873485305  sidx=  rows=10  _search=false

可惜的是,在显示sql语句方面,自带的调试输出效果就比较一般了,只会简单的显示出输出的sql语句,占位符也是用?号代替的。需要开启下面的注释掉的第二行代码ActiveRecordPlugin arp = new ActiveRecordPlugin(druidPlugin);

//arp.setShowSql(true);

//arp.setDevMode(true);

显示效果如下:Sql: select * from `evnet_terminal` where `id` = ?

显然,这种简陋的显示对我们调试复杂的sql语句和排错是没有太多价值的。那么我们就来动手改造一下吧!改造之后,我们的显示效果应该是这个样子的!完整的显示了执行的sql,占位符也被实际参数更换,更显示出了sql执行所花费的时间。20:08:45.903 [qtp1803817267-27] DEBUG jdbc.sqltiming -  com.alibaba.druid.filter.FilterChainImpl.preparedStatement_executeQuery(FilterChainImpl.java:2714)

10. select * from `evnet_terminal` where `id` = 14

{executed in 0 msec}

1、确定所需要的jar包依赖。

不同项目所用的日志框架可能有所不同,所以项目中和日志有关的jar包也不尽相同,这里我只列出我发现的两种情况。

首先,必须引入的jar包包括如下三个:

log4j

log4j

1.2.16

org.slf4j

slf4j-api

1.7.7

com.googlecode.log4jdbc

log4jdbc

1.2

其中真正帮助我们显示完整sql数据的jar是log4jdbc-1.2.jar,该框架的详细介绍如下:

还有一个jar包依赖,需要2选1,如果你的项目中已经引入了其中任何一个,就不需要再引入另一个了。2选1的jar包如下:

org.slf4j

log4j-over-slf4j

1.7.7

org.slf4j

slf4j-log4j12

1.7.7

jar包的版本不是必须使用1.7.7的,其他版本也可以尝试。同时引入以上两个包会产生堆栈溢出问题,详情可参考这篇文档:

2、修改数据库配置信息中的jdbcUrl配置和driverClass配置,示例如下:jdbcUrl = jdbc:log4jdbc:mysql://localhost:3306/evnet?characterEncoding=utf8&zeroDateTimeBehavior=convertToNull

driverClass=net.sf.log4jdbc.DriverSpy

注意,jdbcUrl中的"jdbc:"与":mysql"之间的"log4jdbc"就是我们对url的改变之处,其他的数据库描述符的配置,也是一样的思路,在适当的位置加上"log4jdbc"即可。而driverClass的配置是固定的。

3、修改Jfinal

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值