SOA On Tomcat专题6--Log

日志是排错的重要信息来源,整日志我花了很多时间,最终的结果却不尽人意,但就这样吧,昨晚做梦还梦到处理日志。工作这一年出现了神经衰落,和本身的性格有关吧。。。

 

 

一.Tomcat原始处理日志的功能

     Tomcat原始处理日志的代码在tomcat-juli.jar,这个jar包19K,它回去寻找${catalina.home}/conf/logging.properties,如果默认有4个日志文件,如果不需要这么多个文件则安需要选取,把红色标记的去除就少了localhost.log这个日志了

handlers = 1catalina.org.apache.juli.FileHandler, 2localhost.org.apache.juli.FileHandler, 3manager.org.apache.juli.FileHandler, 4host-manager.org.apache.juli.FileHandler, java.util.logging.ConsoleHandler

.handlers = 1catalina.org.apache.juli.FileHandler, java.util.logging.ConsoleHandler

############################################################
# Handler specific properties.
# Describes specific configuration info for Handlers.
############################################################

1catalina.org.apache.juli.FileHandler.level = FINE
1catalina.org.apache.juli.FileHandler.directory = ${catalina.base}/logs
1catalina.org.apache.juli.FileHandler.prefix = catalina.

2localhost.org.apache.juli.FileHandler.level = FINE
2localhost.org.apache.juli.FileHandler.directory = ${catalina.base}/logs
2localhost.org.apache.juli.FileHandler.prefix = localhost.

3manager.org.apache.juli.FileHandler.level = FINE
3manager.org.apache.juli.FileHandler.directory = ${catalina.base}/logs
3manager.org.apache.juli.FileHandler.prefix = manager.

4host-manager.org.apache.juli.FileHandler.level = FINE
4host-manager.org.apache.juli.FileHandler.directory = ${catalina.base}/logs
4host-manager.org.apache.juli.FileHandler.prefix = host-manager.

java.util.logging.ConsoleHandler.level = FINE
java.util.logging.ConsoleHandler.formatter = java.util.logging.SimpleFormatter


############################################################
# Facility specific properties.
# Provides extra control for each logger.
############################################################

org.apache.catalina.core.ContainerBase.[Catalina].[localhost].level = INFO
org.apache.catalina.core.ContainerBase.[Catalina].[localhost].handlers = 2localhost.org.apache.juli.FileHandler

org.apache.catalina.core.ContainerBase.[Catalina].[localhost].[/manager].level = INFO
org.apache.catalina.core.ContainerBase.[Catalina].[localhost].[/manager].handlers = 3manager.org.apache.juli.FileHandler

org.apache.catalina.core.ContainerBase.[Catalina].[localhost].[/host-manager].level = INFO
org.apache.catalina.core.ContainerBase.[Catalina].[localhost].[/host-manager].handlers = 4host-manager.org.apache.juli.FileHandler


 

 二.Tomcat处理日志升级

按照官方说法,同时它也说配置log4j.xml是有缺陷的。这个60K的tomcat-juli.jar的LogSource.java会检测到classpath是否存tomcat-juli-adapters.jar中的Log4JLogger.class,如果存在那就会使用Class.forName的方式将Log4j实例化,先去解析log4j.xml,找不到再去寻找log4j.properties,然后setLogImplementation("org.apache.juli.logging.impl.Log4JLogger")。按理来说,既然实现方式替换为Log4j了,那么Log4j应该能打印出所有的日志才对,但不是的,原始的catalina.log仍然打印出Log4j缺少的许多重要信息。好吧,也许是我方向错了,先把工作完成了,能用,细的方面后面再追究。

      Follow the following steps to setup a file named tomcat.log that has internal       Tomcat logging output to it:         

  1. Create a file called log4j.properties with the following content and save it into $CATALINA_HOME/lib.
                log4j.rootLogger=debug, R 
                log4j.appender.R=org.apache.log4j.RollingFileAppender 
                log4j.appender.R.File=${catalina.home}/logs/tomcat.log 
                log4j.appender.R.MaxFileSize=10MB 
                log4j.appender.R.MaxBackupIndex=10 
                log4j.appender.R.layout=org.apache.log4j.PatternLayout 
                log4j.appender.R.layout.ConversionPattern=%p %t %c - %m%n 
                log4j.logger.org.apache.catalina=DEBUG, R
              
  2. Download Log4J             (v1.2 or later) and place the log4j jar in $CATALINA_HOME/lib.       
  3. Build or download the additional logging components. See the        extras components documentation for details.               
  4. Replace $CATALINA_HOME/bin/tomcat-juli.jar with        output/extras/tomcat-juli.jar.       
  5. Place output/extras/tomcat-juli-adapters.jar in         $CATALINA_HOME/lib.
  6. Start Tomcat     

 

 PS:log4j.xml默认放在${catalina.base}/home/lib下,但这样工程人员不好配置,在前文提到的监听器中添加一句:DOMConfigurator.configure(log4jfile); 可以解决这个问题

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值