tomcat日志自动分割(linux)

  • Post author:
  • Post category:linux





今天在tomcat上查看项目日志的时候,发现catalina.out文件竟然已经达到202M了,决定做一下日志的分割.先看了一下crontab任务中,发现有个删除前10天日志的自动任务,但是没有发现切割的自动任务.






搜了一下,据说tomcat有默认的日志分割功能,能每天自动生成类似catalina.2010-10-08.log的文件,但是默认catalina.out文件却一直增长.据说到一定大小时占磁盘空间(废话),影响性能,且会报错,这点暂时没发现.其他的查了一下logs文件确实如此.




解决方法,使用cronolog进行日志切割,据说cronolog是个切割日志的小工具,可以切割很多种日志文件,有空得试试.具体做法如下:




1、下载(最新版本)




# wget http://cronolog.org/download/cronolog-1.6.2.tar.gz




2、解压缩




# tar zxvf cronolog-1.6.2.tar.gz




3、进入cronolog安装文件所在目录




# cd cronolog-1.6.2




4、运行安装 (如没有安装gcc,则先安装gcc)




# ./configure




# make




# make install




5、查看cronolog安装后所在目录(验证安装是否成功)




# which cronolog




一般情况下显示为:/usr/local/sbin/cronolog



6.进入Tomcat的bin目录,打开catalina.sh文件,找到tomcat启动的相关行,或者你直接查找catalina.out,一般我们修改下面行中的内容,



修改




org.apache.catalina.startup.Bootstrap “$@” start  \




>> “$CATALINA_BASE”/logs/catalina.out 2>&1 &









org.apache.catalina.startup.Bootstrap “$@” start 2>&1 \




| /usr/local/sbin/cronolog “$CATALINA_BASE”/logs/catalina.%Y-%m-%d.out >> /dev/null &









完成之后重起Tomcat就可以了,在logs目录下可以看到catalina.2009-02-18.out的日志,是按日生成的。