?? 做项目的时候给jdbc做日志,只打印出代?号的sql。个人觉得真没有太大的参考价值。由是看看有没有给jdbc做日志的框架。找到了log4jdbc,但是觉得还不是很理想,由是又看了看,还有一个护展插件log4jdbc-remix。先不扯这么多,先来教大家怎么使用吧。
?
1、加入依赖jar
使用这个插件依赖4个类:log4j,slf4j-log4j,slf4j-api,log4j-remix
?
?
引入这四个依赖jar
2、配置数据源代理
那么再来配置代理连接池,这里代理spring的连接池:
<context:property-placeholder location="classpath:/dataSource.properties" /> <!-- 使用cglib代理 --> <aop:aspectj-autoproxy proxy-target-class="true" /> <!-- jdbc datasource --> <bean id="dataSourceSpied" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close"> <property name="driverClassName" value="${jdbc.driverClassName}" /> <property name="url" value="${jdbc.url}" /> <property name="username" value="${jdbc.username}" /> <property name="password" value="${jdbc.password}" /> <!-- Connection Pooling Info --> <property name="initialSize" value="1" /> <property name="maxActive" value="3" /> <property name="minIdle" value="1" /> <property name="maxIdle" value="5" /> <property name="maxWait" value="30000" /> <property name="removeAbandoned"> <value>true</value> </property> <property name="removeAbandonedTimeout"> <value>180</value> </property> <property name="poolPreparedStatements" value="false" /> <property name="defaultAutoCommit" value="true" /> </bean> <bean id="dataSource" class="net.sf.log4jdbc.Log4jdbcProxyDataSource"> <constructor-arg ref="dataSourceSpied" /> </bean>
?
其他就可以不变,当然还可以参照官方文档,给输出做一些样式。在这就不详述,后面会付上连接地址
?
3、配置log4j.properties.
完成上面两步,就还有一步,反日志输出来。我这里开发采用输出到控制台:
?
##-------------log4jdbc 配置方式示例---------------## #值设置方式 :如果关闭设置为OFF,如果开启设置为ON(默认debug级别)或(设置输出级别,输出器) #log4j-remix中有一个 jdbc 日志输出点 #只打印出执行sql #log4j.logger.jdbc.sqlonly=INFO, console #打印出sql执行所需的时间 log4j.logger.jdbc.sqltiming=INFO,console #log4j.logger.jdbc.audit=INFO,console #打印出执行sql和结果集 log4j.logger.jdbc.resultsettable=INFO, console #打印出连接情况 #log4j.logger.jdbc.connection=INFO,consol #log4j.additivity.jdbc.sqlonly=false #log4j.additivity.jdbc.sqltiming=false #log4j.additivity.jdbc.audidt=false #log4j.additivity.jdbc.resultsettable=false #log4j.additivity.jdbc.connection=false log4j.appender.console=org.apache.log4j.ConsoleAppender log4j.appender.console.layout=org.apache.log4j.SimpleLayout
?你以前做日志的代码可以不用改,加上上面的日志输出配置就行。当然你也可以xml方式配置log4j
?
一切准备就绪,执行下看看:
?
INFO - SELECT count(1) FROM t_active a {executed in 3 msec} INFO - |---------| INFO - |COUNT(1) | INFO - |---------| INFO - |0 | INFO - |---------|
?
?
?
4、参考文章
log4jdbc-remix官网:http://code.google.com/p/log4jdbc-remix/
----------------------:依据官网,当前推荐使用 log4jdbc-log4j2.但是目前做日志主要还是用log4j,待以后用log4j2的时候用用
?