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即可。
logback:
<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"/>
然后,当项目运行时,你可以在日志中找到打印的SQL语句。
log4jdbc简介
https://blog.csdn.net/hylexus/article/details/52552140
Spring Boot 入门之整合 log4jdbc 篇(六)
https://www.cnblogs.com/cnjavahome/p/8421846.html