catalina.out文件,数据主要来源为:System.out 和 System.err 在控制台上直接输出的信息。
编码时应避免使用System.out.println()和e.printStackTrace(),尽量采用logging机制记录日志。
本文主要说的是采用cronolog工具来分割catalina.out文件
1、工具安装
提供两总方式
1)可以直接用yum来安装,简单,建议用此方法即可,但是安装路径需要用which cronolog查看一下
yum install -y cronolog httpd
2)下载源码安装
官方URL:http://cronolog.org/download/index.html
输入以下步骤:
wget http://cronolog.org/download/cronolog-1.6.2.tar.gz
tar xf cronolog-1.6.2.tar.gz
cd cronolog-1.6.2
./configure
make && make install
用which cronolog可以查到安装的路径,默认应该是/usr/local/sbin/cronolog,这个路径待会在修改catalina.sh时会用到。
2、修改Tomcat启动脚本catalina.sh
1)
修改:
if [ -z "$CATALINA_OUT" ] ; then
CATALINA_OUT="$CATALINA_BASE"/logs/catalina.out
fi
为:
if [ -z "$CATALINA_OUT" ] ; then
CATALINA_OUT="$CATALINA_BASE"/logs/catalina.%Y-%m-%d.out
fi
2)删除生成日志文件
注释:
touch "$CATALINA_OUT"
为:
#touch "$CATALINA_OUT"
3)修改启动脚本参数,应该有两处
修改:
org.apache.catalina.startup.Bootstrap "$@" start
>> "$CATALINA_OUT" 2>&1 "&"
为:
org.apache.catalina.startup.Bootstrap "$@" start 2>&1
| /usr/sbin/cronolog "$CATALINA_OUT" >> /dev/null &
注意:/usr/sbin/cronolog这个地址要使用which cronolog查看的为准
3、重启Tomcat
Tomcat输出日志文件分割成功,输出log文件格式为:catalina.2020-01-09.out类型。
4、编写shell脚本,保存至/home/java/auto_del_log.sh文件(地址随意),脚本内容如下:
find /home/java/tomcat-admin/logs -name "*.out" -type f -mtime +30 -exec rm -rf {} ; >/dev/null 2>&1
5 配置cron,定时删除 自动删除30天以前的out日志文件即可,如果没有cron,自行百度安装
crontab -e
将 0 3 * * * /home/java/auto_del_log.sh 添加到任务后面
:wq 保存退出
6 最后 最好重启一下cron任务
service crond restart
大功告成,这样再也不用担心日志不断变大,导致硬盘变满了!!!