tomcat7数据库连接池与log4jdbc的配置与试用

我是研究僧i 提交于 2019-11-29 22:59:19

博文介绍

刚刚有阅读了一遍江南白衣的springside选型文档 https://github.com/springside/springside4/wiki/Design

发现其中谈到了Log4jdbc这个日志组件

随后,访问了log4jdbc的官网网站,https://code.google.com/p/log4jdbc/

官方网站上提供了所有使用log4jdbc的细节

为了配合试用log4jdbc,我又尝试使用了tomcat7新提供的数据库连接池,官方地址:http://tomcat.apache.org/tomcat-7.0-doc/jdbc-pool.html

另外,试用环境选择了最新的spring3.2.3和mysql数据库。

环境准备

所需的jar包一览表:

spring所需的jar有:commons-logging、spring-*

mysql数据库的jdbc驱动:mysql-connector-java

log4jdbc所需的jar有:log4jdbc4-1.2(log4jdbc4要求在jdk1.6以上使用,jdk1.6以下用log4jdbc3-1.2)、log4j、slf4j-*

tomcat7数据库连接池所需jar有:tomcat-jdbc(tomcat_home/lib)、tomcat-juli(tomcat_home/bin)

tomcat7数据库连接池配置

<bean id="dataSource" class="org.apache.tomcat.jdbc.pool.DataSource" destroy-method="close"> 
	<property name="driverClassName" value="${log4jdbc.jdbc.driverClassName}" />
	<property name="url" value="${log4jdbc.jdbc.url}" />
	<property name="username" value="${jdbc.username}" />
	<property name="password" value="${jdbc.password}" />
 
	<property name="maxActive" value="20" /><!-- default 100 -->
	<property name="initialSize" value="1" /><!-- default 10 -->
	<property name="maxWait" value="60000" /><!-- default 30 sec -->
	<property name="maxIdle" value="20" />
	<property name="minIdle" value="1" />
 
	<property name="timeBetweenEvictionRunsMillis" value="3000" /><!-- default 5 sec -->
	<property name="minEvictableIdleTimeMillis" value="300000" /><!-- default 60 sec -->
 
	<property name="validationQuery" value="SELECT 1" /><!-- oracle: select 1 from dual -->
	<property name="testWhileIdle" value="true" />
	<property name="testOnBorrow" value="false" />
	<property name="testOnReturn" value="false" />
</bean>

Log4jdbc配置

jdbc.properties

#mysql is default
jdbc.driverClassName=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://localhost:3306/test

#enable log4jdbc
log4jdbc.jdbc.driverClassName=net.sf.log4jdbc.DriverSpy
log4jdbc.jdbc.url=jdbc:log4jdbc:mysql://localhost:3306/test

jdbc.username=root
jdbc.password=root

log4j.properties

log4j.rootCategory=INFO, stdout
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%d{ABSOLUTE} %5p %t %c{2}:%L - %m%n
log4j.category.org.springframework.beans.factory=error

#log4jdbc
log4j.logger.jdbc.sqlonly=OFF
log4j.logger.jdbc.sqltiming=INFO
log4j.logger.jdbc.audit=OFF
log4j.logger.jdbc.resultset=OFF
log4j.logger.jdbc.connection=OFF

log4jdbc的执行效果

上图可以看出,insert语句的执行时间是129毫秒

这对于开发调试还是很有帮助的,当然mysql的慢查询分析也有类似的功能。

完整的试用代码我已经分享之git@osc ,请访问:

http://git.oschina.net/kzhou-hrb/testtomcatcpandlog4jdbc

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!