Log4j for Tomcat5.5

在Tomcat5.5之前,可以通过server.xml下<Context>的子节点<Logger>配置日志。但Tomcat5.5已经不再提供这种配置方式,取而代之的,Tomcat采用由Sun公司提供的日志框架java.util.logging,它被采用在JDK日志机制中,提供对每个虚拟机的日志记录(per-JVM logging)。Tomcat扩展实现了java.util.logging,称之为JULI,它通过对LogManager的继承实现了每个Web程序的日志记录(per-web application logging)。我们可以在%CATALINA_HOME%\bin下看到JULI的包tomcat-juli.jar。
Log4j是遵循Apache许可证,不同于java.util.logging的开源日志记录框架。

以下讲解对Tomcat配置Log4j的方法:

[color=darkred]首先,配置服务器:[/color]

[url=http://logging.apache.org/log4j/]下载Log4J[/url](1.2或以上版本),将其放置到%CATALINA_HOME%\common\lib下;[url=http://commons.apache.org/downloads/download_logging.cgi]下载common-logging[/url],同样将其放置到%CATALINA_HOME%\common\lib下;在%CATALINA_HOME%\common\classes下编辑log4j.properties配置文件,有关log4j体系结构及配置方法可以参见JE上[url=http://www.iteye.com/topic/378077]CoderDream的帖子[/url],写的很全面、清晰。以下是一段Tomcat服务器的log4j配置文件:


#log4j.rootLogger=DEBUG, stdout, logfile
log4j.rootLogger=INFO, stdout, logfile
#log4j.rootLogger=WARN, stdout, logfile
#log4j.rootLogger=ERROR, stdout, logfile
#log4j.rootLogger=FETAL, stdout, logfile
######################OUTPUT TO CONSOLE######################################
log4j.logger.org.apache.catalina.core.ContainerBase.[Catalina].[localhost]=INFO,stdout,logfile
log4j.logger.org.apache.catalina.core=INFO,stdout,logfile
log4j.logger.org.apache.catalina.session=INFO,stdout,logfile
log4j.logger.org.apache=INFO,stdout,logfile
#指定stout输出到控制台
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %p %c | %m%n
#指定stout输出到文件
log4j.appender.logfile=org.apache.log4j.RollingFileAppender
log4j.appender.logfile.File=${catalina.home}/logs/tomcat.log
log4j.appender.logfile.MaxFileSize=10MB
log4j.appender.logfile.MaxBackupIndex=10
log4j.appender.logfile.layout=org.apache.log4j.PatternLayout
log4j.appender.logfile.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %p %c | %m%n


[color=darkred]其次,是对具体Web应用程序的log4j配置:[/color]

这里所用到的Log4j需要1.2.8或以上版本。将log4j-1.2.8.jar放置到%webapp%\WEB-INF\lib下,但注意,这里不能有common-logging.jar文件。然后在%webapp%\WEB-INF\classes下编辑log4j.properties文件,如下给出某web应用程序的的log4j配置文件:


log4j.rootLogger=DEBUG, stdout, logfile
#log4j.rootLogger=INFO, stdout, logfile
#log4j.rootLogger=WARN, stdout, logfile
#log4j.rootLogger=ERROR, stdout, logfile
#log4j.rootLogger=FETAL, stdout, logfile
######################OUTPUT TO CONSOLE######################################
#指定stout输出到控制台
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.Target=System.out
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
##指定stout输出格式
#log4j的部分配置如下:(http://loveexception.iteye.com/blog/29366)
# %c 输出日志信息所属的类的全名
# %d 输出日志时间点的日期或时间,默认格式为ISO8601,也可以在其后指定格式,比如:%d{yyy-MM-dd HH:mm:ss },输出类似:2002-10-# 18- 22:10:28
# %f 输出日志信息所属的类的类名
# %l 输出日志事件的发生位置,即输出日志信息的语句处于它所在的类的第几行
# %m 输出代码中指定的信息,如log(message)中的message
# %n 输出一个回车换行符,Windows平台为“ ”,Unix平台为“ ”
# %p 输出优先级,即DEBUG,INFO,WARN,ERROR,FATAL。如果是调用debug()输出,则为DEBUG,依此类推
# %r 输出自应用启动到输出该日志信息所耗费的毫秒数
# %t 输出产生该日志事件的线程名
log4j.appender.stdout.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %p %c | %m%n
#########################OUTPUT TO LOGFILE###################################
#指定stout输出到文件
log4j.appender.logfile=org.apache.log4j.RollingFileAppender
log4j.appender.logfile.File=tomcat.log
log4j.appender.logfile.MaxFileSize=10MB
log4j.appender.logfile.MaxBackupIndex=10
log4j.appender.logfile.layout=org.apache.log4j.PatternLayout
log4j.appender.logfile.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %p %c | %m%n
######################iBatis Log##############################################
#log4j.category.org.apache.commons.dbcp=debug
log4j.category.com.ibatis=DEBUG
log4j.logger.com.ibatis=DEBUG
log4j.logger.com.ibatis.common.jdbc.SimpleDataSource=DEBUG
log4j.logger.com.ibatis.common.jdbc.ScriptRunner=DEBUG
log4j.logger.com.ibatis.sqlmap.engine.impl.SqlMapClientDelegate=DEBUG
log4j.logger.java.sql.Connection=DEBUG
log4j.logger.java.sql.Statement=DEBUG
log4j.logger.java.sql.PreparedStatement=DEBUG
log4j.logger.java.sql.ResultSet=DEBUG

log4j.logger.com.ideal.ibatis.dao=DEBUG
log4j.logger.com.ideal.util=DEBUG
log4j.logger.com.ideal.struts.action=DEBUG

参考资料:
[url=http://blog.csdn.net/cookieyou/archive/2008/11/05/3229667.aspx]Log4j与java.util.logging的区别[/url]
[url=http://tomcat.apache.org/tomcat-5.5-doc/logging.html]官方文档:Tomcat5.5配置logging[/url]
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值