JDK + Tomcat 安装 + 制作自定义镜像【第 2.1 篇 Tomcat 日志满问题】

时间:2020-05-27
本文章向大家介绍JDK + Tomcat 安装 + 制作自定义镜像【第 2.1 篇 Tomcat 日志满问题】 ,主要包括JDK + Tomcat 安装 + 制作自定义镜像【第 2.1 篇 Tomcat 日志满问题】 使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。

问题描述,很多时候我们都会遇到 tomcat 日志满的问题,尤其是catalina.out 可能过段时间会达到几十个G的大小,这个时候千万不要用vi来打开他,会直接暴死。

然而很遗憾的是针对这个问题,tomcat从5 - tomcat9 都没有解决,即10年都没有解决,看来需要 程序员自己想法解决。若不解决,那么catalina.out会越来越大,最终导致磁盘满,

应用出现不稳定的情况,我之前遇到过3次,黄俊也遇到了 基本上这个问题 必须彻彻底底的解决掉。

解决方法1:

https://blog.csdn.net/shaonaozu/article/details/52325589?utm_medium=distribute.pc_relevant.none-task-blog-baidujs-9

https://blog.csdn.net/u012365843/article/details/100039849?utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-19.nonecase&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-19.nonecase

如果Tomcat的catalina.out日志文件不关闭,该文件会记录所有的Tomcat日志信息,时间长了该文件会非常大的,这样会占用很大的磁盘空间的。所以我们一般都是每个项目独自记录想要看到的日志信息,而不是所有的日志信息。

关闭catalina.out打印日志:

1.在Tomcat的bin目录下找到catalina.sh

2.修改catalina.sh中的对应信息

if [ -z "$CATALINA_OUT" ] ; then
  #CATALINA_OUT="$CATALINA_BASE"/logs/catalina.out
  CATALINA_OUT=/dev/null
fi

3.保存catalina.sh文件并重启Tomcat就OK了!

这种方法虽然可以,但是 程序并不会 向catalina.out里输出日志了,导致开发调试的时候  看不到 任何日志 非常不便于调试,废弃这种方法。

解决方案2:既然日志会满,那么能否通过写脚本来定时清除呢,比如每天晚上 12点 清除一次 catalina.out,不需要重启tomcat,因为仅仅是清空了日志,并没有删除文件,tomcat是可以继续写入日志的。

1. 需要安装centos定时器软件,

yum install crontabs

2.检查 这个软件是否开机自动启动了。

systemctl list-unit-files |grep crond   检查是否存在这个服务

systemctl status crond.service   检查 这个服务当前的状态

3. 编写定时清空 catalina.out 的linux脚本。

#!/bin/sh

echo -n "" > /usr/local/tomcat/apache-tomcat-9.0.31/logs/catalina.out

exit

原文地址:https://www.cnblogs.com/del88/p/12974556.html