tomcat catalina.log日志太大问题

Posted jiangzhongwei_

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了tomcat catalina.log日志太大问题相关的知识,希望对你有一定的参考价值。

        很久没用过tomcat部署服务了,以前都直接用jar包运行启动,简单又便捷,几年后再次用起来,才发现一些问题!

         这次项目是物联网相关的设备通讯、数据采集等,所以一些日志打的比较频繁也很多,客户反应tomcat里的日志量巨大,一天达到七八个G,然后分配的服务器磁盘也不够大,结果每天早上都需要手动删日志再重启tomcat,客户体验特别不好。

        一开始我还以为只是日志打的太多,将程序日志优化了一番发包给客户,结果第二天照样卡死,磁盘空间不足。好吧,让客户截图看tomcat日志才发现,只有一个catalina.out鹤立鸡群!尼玛,巨坑!其他日志都很小。再到咱们开发环境瞧了瞧,还真是!catalina.out日志里包含每天的运行日志,没分家,也没按日重启,也就是只要tomcat不挂,就会一直追加日志,这太恐怖了!

       然后百度了下,最简单的就是撤了tomcat,让log4j去管理日志,代码配置下就成,但是。。。算了,这个客户会叼人;另一种方法就是切割日志,按天存放。要么装个软件,让它去做运维,要么自定义tomcat的jar ,最后我选择了装软件。。。

      下面都是百度来了,不过有个地方报错,就做了修改:

1、下载cronolog工具,版本是cronolog-1.6.2

2、将下载好的文件解压
tar xvzf cronolog-1.6.2.tar.gz

3、切换到解压后的文件目录下:
cd cronolog-1.6.2

4、初始化和编译安装
./configure  --prefix=/usr/local/cronolog

make

make install

ln -s  /usr/local/cronolog/sbin/* /usr/local/sbin/

5、查看安装版本
cronolog --version

6、修改tomcat的启动文件(tomcat目录/bin/catalina.sh)
vim 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"
   为:
echo "log"

(3)修改启动脚本参数(两处要修改,都一样)
修改:
      org.apache.catalina.startup.Bootstrap "$@" start \\
      >> "$CATALINA_OUT" 2>&1 "&"
    为:
      org.apache.catalina.startup.Bootstrap "$@" start 2>&1 \\
      | /usr/local/sbin/cronolog "$CATALINA_OUT" >> /dev/null &
7、重启tomcat
tomcat输出日志文件分割成功,输出log文件格式为:catalina.2021-11-05.out,
再将原catalina.out日志文件删除

参考文章

以上是关于tomcat catalina.log日志太大问题的主要内容,如果未能解决你的问题,请参考以下文章

tomcat catalina.log日志太大问题

tomcat catalina.log日志太大问题

tomcat localhost log和tomcat catalina log分别代表啥日志?

tomcat里的几类日志: Catalina(catalina.out,catalina.log) localhost manager admin host-manager

tomcat localhost log 和 tomcat catalina log分别是啥日志

找不到Tomcat日志文件错误