打印JdbcTemplate执行sql
有关log4j的基础知识请参考log4j详解与实战,本文主要讲解Spring对log4j的增强。
lo4j有2个不方便的地方
- log4j的配置文件修改后必须重启才能生效。配置文件只能放在WEB-INF/classes目录下。
Spring对?log4j做了更好的增强,下面是要在web.xml中增加的配置参数。
<!--如果不定义webAppRootKey参数,那么webAppRootKey就是缺省的"webapp.root"--><context-param><param-name>webAppRootKey</param-name><param-value>RootPath</param-value></context-param><!--由Sprng载入的Log4j配置文件位置--><context-param><param-name>log4jConfigLocation</param-name><param-value>classpath:conf/log4j.xml</param-value></context-param><!--Spring默认刷新Log4j配置文件的间隔,单位为毫秒--><context-param><param-name>log4jRefreshInterval</param-name><param-value>60000</param-value></context-param><!--Spring log4j Config loader--><listener><listener-class>org.springframework.web.util.Log4jConfigListener</listener-class></listener>
?
?
注意:第一个参数webAppRootKey如果只有一个应用用了Spring对Log4J的增强,则可以不用设置;否则一定要进行设置。
?
?日志文件每天产生一个。{RootPath}即系统的跟路径下。
<!--DEBUG信息输出--><appender name="LOG.DEBUG" value="${RootPath}/logs/debug_" /><param name="DatePattern" value="yyyy-MM-dd'.log'" /><layout value="%d{yyyy-MM-dd HH:mm:ss} [%p] [%C-%M] %m%n" /></layout><filter value="DEBUG" /><param name="LevelMax" value="DEBUG" /></filter></appender>?
?
注意:当日的日志文件是以debug_形式存在的,只有到了下一日才会把昨日的日志文件重名民为debug_2010--03-09.log形式,因此测试的时候需要手工修改系统的时间。
?
因为系统中主要使用JdbcTemplate,因此查看实际执行的sql不是很方面,这就需要把执行的sql语句打印出来。
<!--自定义的日志输出器 --><logger name="org.springframework.jdbc.core" additivity="true"><level value="DEBUG" /><!-- 日志输出地 --><appender-ref ref="LOG.DEBUG" /></logger><logger name="java.sql.Connection" additivity="true"><level value="DEBUG" /><appender-ref ref="LOG.DEBUG" /></logger><logger name="java.sql.Statement" additivity="true"><level value="DEBUG" /><appender-ref ref="LOG.DEBUG" /></logger><logger name="java.sql.PreparedStatement" additivity="true"><level value="DEBUG" /><appender-ref ref="LOG.DEBUG" /></logger><logger name="java.sql.ResultSet" additivity="true"><level value="DEBUG" /><appender-ref ref="LOG.DEBUG" /></logger>
?
注意:org.springframework.jdbc.core的level级别只能是debug,Connection? Statement? PreparedStatement? ResultSet 这四个日志输出器都是不能少的。
?
?
?附加是自己配置好的log4j.xml
1 楼 evan_shen 2011-12-30 貌似不能输出参数啊