现象
linux下tomcat的catalina.out文件过大。
原因
尽管也生成了日志文件catalina.2009-0x-0x.log类型的文件,但是其中的catalina.out文件依然增大。
解决方法
方法1—分割流:
使用cronolog工具切分tomcat的catalina.out日志文件,cronolog一个对日志切分的小工具,其九游会主页在httpcronolog.org,我们也可以用它来切分apache的日志。
方法2—脚本流:
使用cron每天来备份当前的catalina.out,然后清空他的内容;
参考脚本如下:
#!binsh
y=`date %y`
m=`date %m`
d=`date %d`
cd path tomcatlogs
cp catalina.out catalina.out.$y$m$d4
echo catalina.out
exit
注意linux系统的cron服务是否启动,是否正常工作,还有脚本的存放路径。
方法3—猥琐流
打开bin目录下的catalina.sh文件,终究不过是个bash文件,查找一下,catalina.out总共出现三次;部分截图:
shift
touch $catalina_baselogscatalina.out
if [ $1 = -security ] ; then
echo using security manager
shift
$_runjava $java_opts $logging_config $catalina_opts
-djava.endorsed.dirs=$java_endorsed_dirs -classpath $classpath
-djava.security.manager
-djava.security.policy==$catalina_baseconfcatalina.policy
-dcatalina.base=$catalina_base
-dcatalina.home=$catalina_home
-djava.io.tmpdir=$catalina_tmpdir
org.apache.catalina.startup.bootstrap $@ start
$catalina_baselogscatalina.out 2&1 &
if [ ! -z $catalina_pid ]; then
echo $! $catalina_pid
fi
else
$_runjava $java_opts $logging_config $catalina_opts
-djava.endorsed.dirs=$java_endorsed_dirs -classpath $classpath
-dcatalina.base=$catalina_base
-dcatalina.home=$catalina_home
-djava.io.tmpdir=$catalina_tmpdir
org.apache.catalina.startup.bootstrap $@ start
$catalina_baselogscatalina.out 2&1 &
修改前注意原文件的catalina.sh的备份哟~!!
修改以上代码中的
$catalina_baselogscatalina.out 2&1 &
为
devnull 2&1 &
保存,然后启动tomcat,目前这个 catalina.out一直是空的了。
这个方法个人认为比较勇敢,目前还没有在生产环境测试过。虚拟机测试是通过的。
方法4—人流
这个方法其实就是linux系统管理员手工去删除,人工操作,简称“人流”;
删除之前最好停止tomcat的服务;。