Logs下会产生catalina.out managerxx.log localhostxx.log 等各种日志,建议安装新的tomcat之后,把webapps下面的doc,examples,host-manger,manger都删除,root下也清空放入自己的功能页面,虽然删除以上几个应用,但是logs下还会产生对应的日志文件,修改conf/ logging.properties 文件,把如下地方注释:
#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.
即便如此,logs下面的catalina.out还是会一直堆积在一个文件当中,使用以下方法可以让日志进行按日切割。
方法1:cronlog工具
下载cronlog工具
# wget http://www.mrliangqi.com/pack/cronolog-1.6.2.tar.gz
# tar xf cronolog-1.6.2.tar.gz 压缩进入目录
# ./configure && make && make install 编译安装
成功之后,运行which cronolog会找到对应的路径:
# which cronolog
/usr/local/sbin/cronolog
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 &
注释掉:touch “$CATALINA_BASE”/logs/catalina.out
这样每天就会产生一个catalina.xxx.log的文件。零点自动分割。
方法2:纯shell脚本实现
把下面内容保存到shell脚本中,放置于tomca的bin目录下。再配置计划任务即可。
#!/bin/bash
cd `dirname $0`
d=`date +%Y%m%d`
d7=`date -d’7 day ago’ +%Y%m%d`
cd ../logs/
cp catalina.out catalina.out.${d}
echo “” > catalina.out
rm -rf catalina.out.${d7}
方法3:自动截断
1)编辑自动隔断规则
编辑/etc/logrotate.d/tomcat,输入下列内容 :
/usr/local/tomcat/logs/catalina.out { ##日志路径根据实际确定
rotate 7 ##循环保留7个日志
compress ##压缩
copytruncate ##表示先复制log文件的内容,然后再清空
daily ##表示每天整理一次
dateext ##在归档文件后,将会使用日期进行标注
missingok ##表示如果找不到log文件也OK
}
2)强制执行
/usr/sbin/logrotate -f /etc/logrotate.conf
如果因运行时间太久导致catalina.out太大,而没有足够的空间,则可能失败,可以先清空其内容。
echo > /usr/local/tomcat/logs/catalina.out
3)自动执行
默认情况下,每天会自动执行,但是如果没有足够的空间会报错。