Spring和Log4j都是当前web开发中应用非常广泛的技术,而且Spring对log4j的支持也相当好,今天遇到这个问题,就顺手记下在Spring中配置log4j的过程,以免不知道什么时候再用时不记得了。
[@more@]用到的包就是spring.jar和log4j.jar了,首先要配置的是web.xml,需要增加以下几项内容:
log4j参数:
log4jConfigLocation
/WEB-INF/log4j.properties
log4jRefreshInterval
5000
spring监听:
org.springframework.web.util.Log4jConfigListener
spring在Log4jConfigListener中会去读取context-param中的参数,找到log4j配置文件的位置,其中log4jRefreshInterval是动态修改配置文件的,非必须选项。
配置好了web.xml,然后就是log4j.properties,这个文件包含的所有选项的用法网络上都可以查到,这里只记录常用的几项。
#定义根节点,info是日志等级(共分5级),A1是自定义输出,console是输出到控制台
log4j.rootLogger=info, A1,console
#自定义输出配置
#循环写文件模式,输出文件名,单个文件大小,最大文件数,输出格式定义
log4j.appender.A1=org.apache.log4j.RollingFileAppender
log4j.appender.A1.File=test.log
log4j.appender.A1.MaxFileSize=5MB
log4j.appender.A1.MaxBackupIndex=10
log4j.appender.A1.layout=org.apache.log4j.PatternLayout
log4j.appender.A1.layout.ConversionPattern=%-d{yyyy-MM-dd HH:mm:ss,SSS} [%c{1}]-[%p]:%L - %m%n
# 输出到控制台模式及输出格式
log4j.appender.console=org.apache.log4j.ConsoleAppender
log4j.appender.console.layout=org.apache.log4j.PatternLayout
log4j.appender.console.layout.ConversionPattern=%-d{yyyy-MM-dd HH:mm:ss,SSS} [%c{1}]-[%p]:%L - %m%n
然后在自己的类文件里就可以定义log4j使用了。
private static Logger logger = Logger.getLogger(YOURCLASS.class);
可以使用logger.info();logger.error();logger.debug();等打出自己的日志。
在配置完用tomcat测试时发现一个问题,就是自定义的日志文件test.log跑到${TOMCAT_HOME}/bin目录下边了,后来查了资料,通过以下配置可以修改此文件目录,在web.xml里增加一个参数:
webAppRootKey
YourApp.root
然后在log4j中定义日志文件时如下:
log4j.appender.A1.File=${YourApp.root}/test.log
此时test.log文件就输出到WEB-INF同级目录下了,当然这个也可以自己随便指定了。
顺便再记录下,今天测试出个结论,在加载web.xml时的顺序是:1.listener 2.filter 3.servlet
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/7321182/viewspace-1024438/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/7321182/viewspace-1024438/