`
idealab
  • 浏览: 195811 次
  • 性别: Icon_minigender_1
  • 来自: 成都
社区版块
存档分类
最新评论

Log4j for Tomcat5.5

    博客分类:
  • Java
阅读更多
在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的方法:

首先,配置服务器:

下载Log4J(1.2或以上版本),将其放置到%CATALINA_HOME%\common\lib下;下载common-logging,同样将其放置到%CATALINA_HOME%\common\lib下;在%CATALINA_HOME%\common\classes下编辑log4j.properties配置文件,有关log4j体系结构及配置方法可以参见JE上CoderDream的帖子,写的很全面、清晰。以下是一段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


其次,是对具体Web应用程序的log4j配置:

     这里所用到的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

参考资料:
Log4j与java.util.logging的区别
官方文档:Tomcat5.5配置logging

0
0
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics