日期:2014-05-16 浏览次数:20489 次
有关log4j的基础知识请参考log4j详解与实战,本文主要讲解Spring对log4j的增强。
lo4j有2个不方便的地方
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" class="org.apache.log4j.DailyRollingFileAppender"> <param name="File" value="${RootPath}/logs/debug_" /> <param name="DatePattern" value="yyyy-MM-dd'.log'" /> <layout class="org.apache.log4j.PatternLayout"> <param name="ConversionPattern" value="%d{yyyy-MM-dd HH:mm:ss} [%p] [%C-%M] %m%n" /> </layout> <filter class="org.apache.log4j.varia.LevelRangeFilter"> <param name="LevelMin" 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