google code项目地址:http://code.google.com/p/log4jdbc-remix/
新项目log4jdbc-log4j2地址:https://code.google.com/p/log4jdbc-log4j2/
操作:
1、加入依赖:
<dependency> <groupId>org.lazyluke</groupId> <artifactId>log4jdbc-remix</artifactId> <version>0.2.7</version> </dependency>
2、配置数据源拦截器
To configure a Spring Datasource to use Log4jdbc-remix: If you have
<bean id="dataSource" class="..."> <property name="driverClass" value="${datasource.driverClassName}"/> <property name="jdbcUrl" value="${datasource.url}"/> <property name="user" value="${datasource.username}"/> <property name="password" value="${datasource.password}"/> ... </bean>
Change this to
<bean id="dataSourceSpied" class="..."> <property name="driverClass" value="${datasource.driverClassName}"/> <property name="jdbcUrl" value="${datasource.url}"/> <property name="user" value="${datasource.username}"/> <property name="password" value="${datasource.password}"/> ... </bean> <bean id="dataSource" class="net.sf.log4jdbc.Log4jdbcProxyDataSource"> <constructor-arg ref="dataSourceSpied" /> </bean>
3、配置 sql 的输出格式
If you want to define your own custom sql formatter, you can do it like this, where Log4JdbcCustomFormatter is an example custom formatter :
<bean id="dataSource" class="net.sf.log4jdbc.Log4jdbcProxyDataSource"> <constructor-arg ref="dataSourceSpied" /> <property name="logFormatter"> <bean class="net.sf.log4jdbc.tools.Log4JdbcCustomFormatter"> <property name="loggingType" value="MULTI_LINE" /> <property name="margin" value="19" /> <property name="sqlPrefix" value="SQL:::" /> </bean> </property> </bean>
运行时可能出现的错误:
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'dataSource' defined in ServletContext resource...
解决方案:注释掉 <property name="margin" value="19" /> 这行即可。
4、设置日志输出内容格式
log4j:
#log4jdbc log4j.logger.jdbc.sqlonly=OFF log4j.logger.jdbc.sqltiming=INFO log4j.logger.jdbc.audit=OFF log4j.logger.jdbc.resultset=OFF log4j.logger.jdbc.resultsettable=OFF log4j.logger.jdbc.connection=OFF
可以同时打开多个日志输出格式,不使用的设置为OFF即可。
<logger name='jdbc.sqltiming' additivity='false'/> <logger name='jdbc.audit' additivity='false'/> <logger name='jdbc.resultset' additivity='false'/> <logger name='jdbc.connection' additivity='false'/> <logger name='jdbc.resultsettable' additivity='false'/> <logger name="jdbc.sqlonly" level="INFO"/>