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. Spark Final-Examination Note

    重点 4567,Special 4,5 3道编程题,分值 35(基本书上,不超纲) 选填各 20分,简答 5 题/25分,编程题 3题/35分. 简答题参考每章课后习题 第 1 章简答题 1. 请阐述 ...

  2. Codeforce1343C. Alternating Subsequence

    Recall that the sequence b is a a subsequence of the sequence a if b can be derived from a by removi ...

  3. 【每日一题】25.「火」皇家烈焰 (字符串DP)

    补题链接:Here 转移方程的具体含义我在代码注释里写出来了, 很好理解 这道题的难点在于如何表示状态, 一旦找到状态表示方法 只要根据题意做转移就行了 最后的答案就是 \(dp[n][0][0] + ...

  4. 2016年第七届 蓝桥杯B组C/C++ 决赛题解

    1.一步之遥 从昏迷中醒来,小明发现自己被关在X星球的废矿车里. 矿车停在平直的废弃的轨道上. 他的面前是两个按钮,分别写着"F"和"B". 小明突然记起来,这 ...

  5. 黑马vue学习笔记

    1.v-model原理 2.数组相关API 3.prop命名规则: 4.非父子组件传值-事件中心

  6. babel7 的配置加载逻辑

    babel.config.js 是对整个项目(父子package) 都生效的配置,但要注意babel的执行工作目录. .babelrc 是对 待编译文件 生效的配置,子package若想加载.babe ...

  7. canvas验证码 uni-app/小程序

    1 <template> 2 <view class="logo-wrapper"> 3 <view class="logo-img&quo ...

  8. wiremock设置接口入参的判断条件

    一.wiremock管理台url: http://192.168.37.8:7777/__admin/swagger-ui/ 可重启测试桩,获取响应信息等操作  二.设置接口响应入参的判断条件 如当影 ...

  9. 01-module/分频器/激励写法

    1.module module有出入接口,输出接口 module有时钟和复位 // input clock; rest_n; // n表示低电平复位 //output o_data; module m ...

  10. 09-Verilog-并发线程

    Verilog-线程 并发线程 verilog和C语言有一个最大的不同就是并发性 并发--同时进行的过程 module tb_test; int a; initial begin a = 1; a = ...