linux下tomcat的catalina.out文件过大的正确处理方法!

背景知识不多说,不知道的自己去搜搜。网上流传用log4j进行分割的方法一般不正确。类似方法如下:

通过安装log4j,配置log4j.properties来分割catalina.out,配置文件如下:

01.log4j.rootLogger=INFO,CATALINA  
02.log4j.logger.com.danga.MemCached.MemCachedClient=WARN,CATALINA   
03.#log4j.appender.CONSOLE = org.apache.log4j.ConsoleAppender  
04.#log4j.appender.CONSOLE.layout = org.apache.log4j.PatternLayout  
05.#log4j.appender.CONSOLE.encoding = UTF-8  
06.#log4j.appender.CONSOLE.layout.conversionPattern =[%p-%d{yyyy/MM/dd/HH/:mm/:ss}]%c{1}.(%L) - %m%n   
07. 
08. 
09.# Define CATALINA appenders  
10.log4j.appender.CATALINA = org.apache.log4j.DailyRollingFileAppender  
11.log4j.appender.CATALINA.file = ${catalina.base}/logs/catalina.out  
12.log4j.appender.CATALINA.DatePattern ='.'yyyy-MM-dd  
13.log4j.appender.CATALINA.layout = org.apache.log4j.PatternLayout  
14.log4j.appender.CATALINA.layout.conversionPattern = [%p-%d{yyyy/MM/dd/HH/:mm/:ss}]%c{1}.(%L) - %m%n   
15.log4j.appender.CATALINA.append = true 

本文来自CSDN博客,转载请标明出处:tomcat使用log4j分割日志的配置方法_fishrui的专栏-CSDN博客

        这样做其实是不行的。它实际上是强制把catalina.out文件覆盖掉(也就是换了个同样名字的文件),而此时catalina.out成了别的logger打印信息的地方(从这看,是将rootlogger的filehandler设为catalina.out,实际效果是没有指明filehandler的logger对象会将信息打印到这个地方),这样,catalina.out文件是小了。但本身要在catalina.out文件中打印的信息却丢失了。

        我们的目的是想让catalina.out文件变小不错,但是前提是不损失消息的情况,或者至少能完整保持一段时间的消息(因为我推荐的方法最后也要损失消息,但损失的是一段时间之前的)。要分析catalina.out文件为何这么大,就要看它是怎么来的。首先,它是由tomcat启动进程创建维护的,这一点很重要,因为不是由日志工具创建的,所以通过配置是解决不了控制大小的问题,它会随时间无限增长。其次,catalina.out中的数据主要有三个来源(http://blog.163.com/marine_chen/blog/static/257570542007010103434661/):输出至标准输出和标准错误输出的数据,通过Commons Logging接口输出的日志信息,还有一种是包括了Tomcat各种事件状态和其它系统(如Jakarta Struts)的输出。按照我的理解,照官方的说法,也就是所有标准输出和标准错误的数据。这样,通过Commons Logging接口输出的日志信息在定义的正确的输出文件下,将不会打印到catalina.out,这样能减少catalina.out的增长速度但是不能控制它最终的大小。所以,控制catalina.out的方法只能通过对catalina.out文件(而不是起一个相同名字的文件将它覆盖)进行操作。正确的方法应该是使用cronolog等工具或者自己编写shell脚本来定时或定量备份catalina.out,同时新建catalina.out。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值