如何控制Tomcat的catalina.out的大小
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
大功告成,这样再也不用担心日志不断变大,导致硬盘变满了!!!
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· [.NET]调用本地 Deepseek 模型
· 一个费力不讨好的项目,让我损失了近一半的绩效!
· .NET Core 托管堆内存泄露/CPU异常的常见思路
· PostgreSQL 和 SQL Server 在统计信息维护中的关键差异
· C++代码改造为UTF-8编码问题的总结
· 一个费力不讨好的项目,让我损失了近一半的绩效!
· 实操Deepseek接入个人知识库
· CSnakes vs Python.NET:高效嵌入与灵活互通的跨语言方案对比
· 【.NET】调用本地 Deepseek 模型
· Plotly.NET 一个为 .NET 打造的强大开源交互式图表库