剛剛有閱讀了一遍江南白衣的springside選型文檔 https://github.com/springside/springside4/wiki/Design html
發現其中談到了Log4jdbc這個日誌組件 java
隨後,訪問了log4jdbc的官網網站,https://code.google.com/p/log4jdbc/ mysql
官方網站上提供了全部使用log4jdbc的細節 git
爲了配合試用log4jdbc,我又嘗試使用了tomcat7新提供的數據庫鏈接池,官方地址:http://tomcat.apache.org/tomcat-7.0-doc/jdbc-pool.html github
另外,試用環境選擇了最新的spring3.2.3和mysql數據庫。 spring
所需的jar包一覽表: sql
spring所需的jar有:commons-logging、spring-* 數據庫
mysql數據庫的jdbc驅動:mysql-connector-java apache
log4jdbc所需的jar有:log4jdbc4-1.2(log4jdbc4要求在jdk1.6以上使用,jdk1.6如下用log4jdbc3-1.2)、log4j、slf4j-* tomcat
tomcat7數據庫鏈接池所需jar有:tomcat-jdbc(tomcat_home/lib)、tomcat-juli(tomcat_home/bin)
<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>
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
上圖能夠看出,insert語句的執行時間是129毫秒
這對於開發調試仍是頗有幫助的,固然mysql的慢查詢分析也有相似的功能。
完整的試用代碼我已經分享之git@osc ,請訪問: