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

大功告成,这样再也不用担心日志不断变大,导致硬盘变满了!!!

如何控制Tomcat的catalina.out的大小的更多相关文章

  1. Tomcat输出catalina.out的大小控制

    资源URL:http://download.csdn.net/detail/attagain/7771065 Tomcat默认生成的日志文件catalina.out,随着时间的推移,逐渐增大,可能达到 ...

  2. 使用logrotate分割Tomcat的catalina日志

    切割catalian日志的方式有很多种,比如shell脚本的.cronolog或者通过配置log4j等等这些都可以实现.但今天我要介绍是使用logrotate来按日期生成日志. 原文是一个外国博主的文 ...

  3. 设置TOMCAT的JVM虚拟机内存大小

    你知道如何设置TOMCAT的JVM虚拟机内存大小吗,这里和大家分享一下,JAVA程序启动时JVM都会分配一个初始内存和最大内存给这个应用程序.这个初始内存和最大内存在一定程度都会影响程序的性能. 设置 ...

  4. Linux 下修改Tomcat使用的JVM内存大小

    我的服务器的配置: # OS specific support.  $var _must_ be set to either true or false. JAVA_OPTS="-Xms10 ...

  5. tomcat的catalina.out日志文件过大

    今天发现一个服务器的/opt目录数据过大,最后发现是tomcat中的catalina.out日志过大引起的 用du命令查看opt下一层的数据文件大小 [root@ccssapportalp opt]# ...

  6. 修改Tomcat使用的JVM内存大小

    我的服务器的配置: # OS specific support.  $var _must_ be set to either true or false. JAVA_OPTS="-Xms10 ...

  7. windows下配置tomcat服务器的jvm内存大小的两种方式

    难得遇到一次java堆内存溢出(心里想着,终于可以来一次jvm性能优化了$$) 先看下报错信息, java.lang.OutOfMemoryError: GC overhead limit excee ...

  8. [转载]Linux下tomcat的catalina.out文件过大,以及目录更改解决办法

    原文链接:http://liyan0524.iteye.com/blog/1285644 方法1—分割流 使用cronolog工具切分Tomcat的catalina.out日志文件 cronolog一 ...

  9. Tomcat 的 catalina.out 日志分割

    一.背景 Tomcat 的 catalina.out 日志量不断增加,占用空间较大,且默认是不滚动的.因此,需要对其进行日志分割,并进行清理. 本文选用 Cronolog 对其进行分割. 二.安装 1 ...

  10. Tomcat中catalina run后台运行脚本

    编写启动脚本start.sh,将其放在/srv/aubapp/bin/下 #!/bin/sh #设置web应用程序目录 export CATALINA_BASE="/srv/aubapp&q ...

随机推荐

  1. 【CJsonObject】C++ JSON 解析器使用教程

    能选封装的尽量不使用底层的 一.CJsonObject 简介 CJsonObject 是 Bwar 基于 cJSON 全新开发一个 C++ 版的 JSON 库. CJsonObject 的最大优势是轻 ...

  2. 汇编 | DosBox初步接触的一些初始化设置(窗口大小 & 默认命令)

    如何在win10 64位下搭载汇编环境请参考这篇博客:Here 学习汇编时下载了 DosBox,然而窗口小到眼睛酸痛.解决方案如下. Updata:VSC 插件使用方法,Here 1.点开配置文件 配 ...

  3. mongose查询

  4. python进度条实现的几种方法

    一.普通进度条(time实现) import time def progress_bar(): for i in range(101): print(f'\rProgress: {"#&qu ...

  5. 状态: 失败 -测试失败: IO 错误: The Network Adapter could not establish the connection (CONNECTION_ID=BMRc/8PgR2+0i4PK2tnHQA==)

    1.问题 问题如标题所示,在使用Oracle SQL Developer连接时发现错误: 状态: 失败 -测试失败: IO 错误: The Network Adapter could not esta ...

  6. 【TouchGFX 】使用 CubeMX 创建 TouchGFX 工程时 LCD 显示为雪花屏

    经几个晚上折腾,修改大量的LTDC时钟.时序,FMC时序等,结果还是一样,耐心与好使的工程仔细对比,发现是时钟源配置问题,真是冤,聊以此以示纪念 实质上是没有分清有源和无源晶振 无源晶振又被叫做 谐振 ...

  7. [转帖]TLS 加速技术:Intel QuickAssist Technology(QAT)解决方案

    https://zhuanlan.zhihu.com/p/631184323   3 人赞同了该文章 作者:vivo 互联网服务器团队- Ye Feng 本文介绍了 Intel QAT 技术方案,通过 ...

  8. JVM内存参数的学习之三

    JVM内存参数的学习之三 背景 研究启动性能时, 顺便看到了jmap -heap 1 的部分信息 看到: MinHeapFreeRatio.MaxHeapFreeRatio 自己突然以为是 Perce ...

  9. Nginx arm编译安装

    Nginx arm编译安装 背景 计划编译一套产品. 能够比较方便快捷的进行 nginx的交付. 主要思想是源码编译 不仅能够在arm上面运行 也可以在x86上面编译 考虑性能还有一些扩展性. 高效处 ...

  10. [转帖]谈谈对K8S CNI、CRI和CSI插件的理解

    K8S的设计初衷就是支持可插拔架构,解决PaaS平台不好用.不能用.需要定制化等问题,K8S集成了插件.附加组件.服务和接口来扩展平台的核心功能.附加组件被定义为与环境的其他部分无缝集成的组件,提供类 ...