试用log4jdbc
近日发现一个好东东log4jdbc,他是一个JDBC驱动器,能够记录SQL日志和SQL执行时间等信息。log4jdbc使用SLF4J(Simple Logging Facade For Java)作为日志系统。特性:
1.支持JDBC3和JDBC4,其中JDBC3对应于JDK 1.4 or 1.5,JDBC4要求JDK 1.6或以上。
2.支持现有大部分JDBC驱动。
3.易于配置(在大部分情况下,只需要改变驱动类名并在jdbc url前加上”jdbc:log4“,设置好日志输出级别)。
4.能够自动把SQL变量值加到SQL输出日志中,改进易读性和方便调试。
5.能够快速标识出应用程序中执行比较慢的SQL语句。
6.能够生成SQL连接数信息帮助识别连接池/线程问题。
由于我们的持久层框架采用Ibatis,而系统操作的数据量也非常的大,所有的SQL前线前都必须通过DBA的审核和调优;而为了提升性能,要求所有的SQL都必须用动态绑定的方式,而不能拼装SQL;这样在调试SQL时就会有些不方便,而且自己不知道各SQL执行所消耗的时间(公司也有提供SQLTrace工具,但是用起来比较复杂);以前国际站自己也写了一个类似的框架alibaba-intl-ark来对Oracle的JDBC驱动进行封装,也尝试过使用,使用的结果并不是很理想,兼容性比较差,功能也不是很完善,所以该框架也就没多少人使用了;
发现log4jdbc之后立马试用了一把,感觉还不错的,下面简单介绍下使用步骤和方法:
1、到官网下载log4jdbc和slf4j的jar包;比如log4jdbc3-1.1.jar、slf4j-api-1.5.0.jar,对于slf4j要看系统到底使用什么log框架,若使用log4j,则需要slf4j-log4j12-1.5.0.jar;
2、将应用中的driver-class设置为net.sf.log4jdbc.DriverSpy;对于常用的jdbc驱动无需其他设置,比如oracle驱动oracle.jdbc.driver.OracleDriver也已经在默认设置中了,若默认驱动列表中不包括你的应用系统中需要的驱动,那需要通过-Dlog4jdbc.drivers来进行设置系统属性,支持的默认驱动列表可到官网查看,网址见后;
3、在应用中jdbc url最前面添加jdbc:log4;比如oracle的url就变成了jdbc:log4jdbc:oracle:thin:@x.x.x.x:1521:dbname;
4、在日志系统中设置jdbc.sqlonly、jdbc.sqltiming等日志级别,可直接将log4jdbc doc中的日志内容copy过去;
5、运行系统测试,到对应日志文件中查看SQL相关信息;
前面提到了基本的log4jdbc配置和功能,除了这些之外,他也还提供一些比较复杂的功能,比如可以通过-Dlog4jdbc.sqltiming.warn.threshold参数设置SQL耗时多少以上就打印warn信息;另外,log4jdbc还提供了一个对日志文件进行分析的脚本;
经测试,log4jdbc不能在XA环境下使用,比如jboss datasource配置中,若以非XA形式local-tx-datasource配置,则没有问题;若以xa-datasource配置,则无法生效,系统运行时不能取得connection;究其原因的话,是由于log4jdbc针对的是driver-class的封装,而不是datasource-class;所以对系统中使用XA的用户来说就无法使用该框架了,若一定要使用,只能修改成local-tx-datasource类型;
PS:以下是相关链接地址
log4jdbc:http://log4jdbc.sourceforge.net/
slf4j:http://slf4j.org/
试用log4jdbc的更多相关文章
- JDBC数据库访问操作的动态监测 之 Log4JDBC
log4jdbc是一个JDBC驱动器,能够记录SQL日志和SQL执行时间等信息.log4jdbc使用SLF4J(Simple Logging Facade)作为日志系统. 特性: 1.支持JDBC3和 ...
- SharePoint Online 申请试用链接地址
SharePoint Online 申请试用链接地址: https://products.office.com/en-us/business/compare-office-365-for-busine ...
- 活动助手Beta用户试用报告
用户试用报告 1.面向参与者用户 1.1 日常参加各类学习(水综测)活动中,有没有遇到以下问题: (1) 信息来源混乱,不知道靠不靠谱 (2) 每次报名都要重新填写自己的学号手机号,有时候填错了就没综 ...
- 创建WP8试用应用
参考资料: 创建 Windows Phone 的试用应用 如何在 Windows Phone 应用中实现试用体验 Windows Phone 7 开发 31 日谈——第23日:提供试用版应用程序 对资 ...
- 达梦7的试用 与SQLSERVER的简单技术对比
达梦7的试用 与SQLSERVER的简单技术对比 达梦数据库公司推出了他们的数据库服务管理平台,可以在该平台使用达梦数据库而无须安装达梦7数据库 地址:http://online.dameng.com ...
- Beta版本——用户试用与调研报告
1 引言 1.1 系统概述 毕设导师智能分配系统是一个用来简化传统手工匹配繁琐操作的系统.本系统将学生报志愿.系负责人收集整理数据.相关人员进行手工分配.反馈选择结果等繁琐的操作转移到线上.把毕设 ...
- log4jdbc 使用
像 hibernate, mybatis 都是不打印真正执行的sql的,所以借助 log4jdbc 打印sql以及统计执行时间是非常方便的. 配置log4jdbc 有很多种方法,比如通过spring的 ...
- 【记录】尝试用android-logging-log4j去实现log输出内容到sd卡中的文件的功能
[背景] 折腾: [记录]给Android中添加log日志输出到文件 期间,已经试了: [记录]尝试用android中microlog4android实现log输出到文件的功能 但是不好用. 然后就是 ...
- 代码阅读分析工具Understand 2.0试用
Understand 2.0是一款源代码阅读分析软件,功能强大.试用过一段时间后,感觉相当不错,确实可以大大提高代码阅读效率.由于Understand功能十分强大,本文不可能详尽地介绍它的所有功能,所 ...
随机推荐
- bzoj 4551
4551 思路: 乱搞: 代码: #include <cstdio> #include <cstring> #include <iostream> #include ...
- Django第一步
对于一个web框架,掌握了三部分的内容,就可以说是迈出了第一步. 1. 准备开发环境 2. 创建一个工程,并运行 3. 开发hello world应用 1. 准备环境 首先应该是安装python和dj ...
- gitlab-针对API,获取私有令牌
Gitlab有一个强大的API系统,几乎所有的功能都可以在web中执行,当然也可以通过API来执行,为了使用API,需要从Gitlab中获取私有token. 执行步骤: 1. 登陆Gitlab服务器 ...
- poj2387 Til the Cows Come Home(Dijkstra)
题目链接 http://poj.org/problem?id=2387 题意 有n个路标,编号1~n,输入路标编号及路标之间相隔的距离,求从路标n到路标1的最短路径(由于是无向图,所以也就是求从路标1 ...
- 洛谷P2707 Facer帮父亲 [优先队列,数学]
题目传送门 Facer帮父亲 题目背景 Facer可是一个孝顺的孩纸呦 题目描述 Facer的父亲是一名经理,现在总是垂头丧气的. Facer问父亲,怎么啦?父亲说,公司出了点问题啊. 公司管理着N个 ...
- linux 下rocketmq安装
一.解压mq(/data下)tar -zxvf Rocketmq-3.5.8.tar.gz 二.修改配置文件vi /etc/profileexport rocketmq=/data/alibaba-r ...
- python面向对象中类对象、实例对象、类变量、实例变量、类方法、实例方法、静态方法
1. 类对象和实例对象 Python中一切皆对象,Python类本身也是一种对象,类定义完成后,会在当前作用域中定义一个以类名为名字的命名空间.类对象具有以下两种操作: 可以通过“类名()”的方式实例 ...
- 初识Spring——Spring核心容器
一. IOC和DI基础 IOC-Inversion of Control,译为控制反转,是一种遵循依赖倒置原则的代码设计思想. 所谓依赖倒置,就是把原本的高层建筑依赖底层建筑“倒置”过来,变成底层建筑 ...
- 【基础知识】C#数据库中主键类型的选择
主键在数据库中占有很大的地位,对于表的关联性,和数据的唯一识别性有重要的作用: 1,在C#开发中,Int自增字段和Guid(数据库中是uniqueidentifier类型)可设置为主键: 1>G ...
- 决策树算法(Bagging与随机森林)
Bagging算法: 将训练数据集进行N次Bootstrap采样得到N个训练数据子集,对每个子集使用相同的算法分别建立决策树,最终的分类(或回归)结果是N个决策树的结果的多数投票(或平均). 其中,B ...