720

集成Log4Jdbc

2015.06.22 评论(12) 1,961次

在Java应用开发时,经常用到Hibernate。写HQL/SQL时,为了保证执行效率和安全性,都会使用参数绑定的方式去执行SQL。但是Hibernate中的showSql参数不能显示出真正执行SQL的参数,还是会以?来显示。所以需要使用其他方式去显示SQL。

我用过P6SPY和LOG4JBC,P6SPY现在已经很久没有维护了,项目中基本上都集成了LOG4JDBC,这个工程由google托管,bug修复应该还是比较快的。当然集成比较方便,功能也很强大,下面先说一下集成方式。

一、集成

如果使用了MAVEN,可以直接在pom.xml加入LOG4JDBC的坐标:

如果没有使用MAVEN,可以点击下方链接下载,放入项目的Class Path中。

上面的jar包加入后,就来集成到项目中:

如果项目使用的Spring,可以使用Spring的Aop来对数据源进行切面拦截,Spring配置文件如下配置:

上面我配置了拦截两个数据源(dataSource、dateSource_1),这么做的好处是可以公用一个拦截器。net.sf.log4jdbc.DataSourceSpyInterceptor类进行了重写,如下:

如果你的项目没有使用Spring,集成也是很简单,只需要在你的JdbcUrl配置那里稍作修改。

如图,只需要把url前面加上jdbc:log4jdbc:即可。然后修改jdbc驱动。即完成集成工作,下面你只需要执行一个SQL就可以看到效果了。

二、配置

这里可以看到输出的密密麻麻的信息,有查询SQL,还会把结果也列出来,这里可能会输出很多你不想要的信息,可以根据自己所选的日志组件进行过滤,我们项目中使用的是。LogBack。logback.xml中是这么配置的:

如果使用的是Log4J,可以像下面这么配置

上面就是怎么配置LOG4JDBC的方法。

完:本文共1117字
标签: , ,
相关文章:
12条评论
评论 (12)
相关 (0)
  • 1楼
    hgnc Firefox 44.0 Windows 7 :

    博客写的干净利落,层次分明——分明就是艺术家气息

    2016.03.31 12:34 回复
  • 2楼
    极品飞鸽 Google Chrome 39.0.2171.95 Windows 7 :

    这个就相当于日志插件嘛

    2015.06.30 20:23 回复
    • 冷乐 Internet Explorer 11.0 Windows 8.1 x64 Edition PO :

      @极品飞鸽 : 是的,针对SQL的日志记录,主要在开发阶段用来调试,或者在遇到SQL性能问题的时候排查问题。

      2015.07.1 09:51 回复
  • 3楼
    热词网 Google Chrome 41.0.2272.101 Windows 7 x64 Edition :

    收藏着,以备不时之需

    2015.06.30 17:03 回复
  • 4楼
    江西养牛人 Google Chrome 31.0.1650.63 Windows XP :

    技术贴呀

    2015.06.28 09:48 回复
  • 5楼
    小米 Google Chrome 42.0.2311.152 Windows 7 x64 Edition :

    不是很懂,不知道这是干什么的,大神求带。 :o :o

    2015.06.23 14:53 回复
  • 6楼
    哈哈 WebView 4.0 Android 4.4.2 :

    哈哈,我能看懂!

    2015.06.22 20:49 回复
  • 7楼
    天中青年 uBrowser 2.x Windows XP :

    看着你写的技术类文章,我很头大同事十分佩服。头大的是我不懂技术,佩服的是,这是个技术活呀。呵呵,顶一个!

    2015.06.22 20:04 回复
    • 冷乐 Google Chrome 43.0.2357.124 Windows 8.1 x64 Edition PO :

      @天中青年 : 这都是工作需要啊,其实都是很基础的东西。看了看你的博客,基本上每天都更新,佩服你啊。

      2015.06.22 21:45 回复
  • 还没有Trackback
发表评论
icon_wink.gif icon_neutral.gif icon_mad.gif icon_twisted.gif icon_smile.gif icon_eek.gif icon_sad.gif icon_rolleyes.gif icon_razz.gif icon_redface.gif icon_surprised.gif icon_mrgreen.gif icon_lol.gif icon_idea.gif icon_biggrin.gif icon_evil.gif icon_cry.gif icon_cool.gif icon_arrow.gif icon_confused.gif icon_question.gif icon_exclaim.gif