请在我上一篇博客“使用commons.logging中的simplelog显示调试和日志信息”建立的工程的基础上再行操作。
1、到http://archive.apache.org/dist/logging/log4j,下载相应版本的log4j,我这里选择的是1.2.9版本(下载logging-log4j-1.2.9.zip,解压之后在其中的dist/lib下找到log4j-1.2.9.jar),拷贝其中的log4j-1.2.9.jar文件到之前工程的WebRoot/WEB-INF/lib文件夹下
2、修改src文件夹中commons-logging配置文件,具体内容为:
org.apache.commons.logging.Log=org.apache.commons.logging.impl.Log4JLogger
3、在src文件夹下建立log4j配置文件:log4j.properties;这个文件在编译之后会自动拷贝到WEB-INF/classes文件夹下,此文件的内容为:
log4j.rootLogger=DEBUG,stdout,A_default
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%5p [%t](%F:%L) - %m%n
log4j.appender.A_default=org.apache.log4j.RollingFileAppender
log4j.appender.A_default.File=logTest.log
log4j.appender.A_default.MaxFileSize=100KB
log4j.appender.A_default.MaxBackupIndex=10
log4j.appender.A_default.layout=org.apache.log4j.PatternLayout
log4j.appender.A_default.layout.ConversionPattern=%d{ISO8601}-%p-%m%n
此处的log4j.rootLogger=DEBUG,stdout,A_default设置了log信息记录级别为DEBUG,并会采用两种显示模式,其中stdout设置为再控制台显示,A_default则输出为文件。
4、运行程序,访问index.jsp页面,查看其日志显示情况,可以看到在控制台输出了DEBUG级别的信息,同时可以在TOMCAT根目录的bin目录下找到logTest.log文件,若日志文件大小超过了100k,则可以看到还会有logTest.log.1这类文件。
5、也可以针对某个包(package)中的logger类单独设置log信息显示级别,比如说在log4j.properties中加入下面的配置项:
log4j.logger.org.apache.jsp.index_jsp=WARN
则在访问index.jsp页面的时候,只会记录WARN级别以下的log信息。
更多的配置项目及内容,大家可以参考log4j官网文档:http://logging.apache.org/log4j/1.2/manual.html
此处记录log的文件logTest.log设置的为相对目录,大家可能不太理解,为什么是相对TOMCAT的目录,而不是相对工程所在的目录,这主要是:服务器如tomcat启动时会自动搜索web-inf目录和web-inf/classes目录中log4j.properties文件,如有则自动加载,而且服务器会自动区分哪个log4j配置文件是针对那个应用的,在访问相应的应用的时候会自动根据相应的配置文件作出处理。
更多关于“log4j中配置日志文件相对路径”的问题,大家可以参考一下:http://sharep.blog.51cto.com/539048/143734