tomcat的下的日志catalina.out 和 qc.log疯狂增长,以下是解决办法

我生产环境tomcat版本

Server version: Apache Tomcat/7.0.35
Server number:  7.0.35.0
OS Name:        Linux
OS Version:     2.6.18-194.el5
Architecture:   amd64
JVM Version:    1.7.0_13-b20

一、catalina.out

1.修改日志输出级别(未验证)

位置 conf/logging.properties
1catalina.org.apache.juli.FileHandler.level =
FINE
1catalina.org.apache.juli.FileHandler.directory = ${catalina.base}/logs
1catalina.org.apache.juli.FileHandler.prefix = catalina.

修改日志级别  将FINE 改为OFF,或者WARNING;
每类日志的级别分为如下 7 种:
SEVERE (highest value) > WARNING > INFO > CONFIG > FINE > FINER > FINEST (lowest value)

2.将日志输出到 /dev/dull
查找一下在 tomcat/bin/catalina.sh 中相关配置   
 if [ -z "$CATALINA_OUT" ] ; then
  CATALINA_OUT="$CATALINA_BASE"/logs/catalina.out
fi
……
 touch "$CATALINA_OUT"
  if [ "$1" = "-security" ] ; then
    if [ $have_tty -eq 1 ]; then
      echo "Using Security Manager"
    fi
    shift
    eval \"$_RUNJAVA\" \"$LOGGING_CONFIG\" $JAVA_OPTS $CATALINA_OPTS \
      -Djava.endorsed.dirs=\"$JAVA_ENDORSED_DIRS\" -classpath \"$CLASSPATH\" \
      -Djava.security.manager \
      -Djava.security.policy==\"$CATALINA_BASE/conf/catalina.policy\" \
      -Dcatalina.base=\"$CATALINA_BASE\" \
      -Dcatalina.home=\"$CATALINA_HOME\" \
      -Djava.io.tmpdir=\"$CATALINA_TMPDIR\" \
      org.apache.catalina.startup.Bootstrap "$@" start \
      >> "$CATALINA_OUT" 2>&1 "&"

else
    eval \"$_RUNJAVA\" \"$LOGGING_CONFIG\" $JAVA_OPTS $CATALINA_OPTS \
      -Djava.endorsed.dirs=\"$JAVA_ENDORSED_DIRS\" -classpath \"$CLASSPATH\" \
      -Dcatalina.base=\"$CATALINA_BASE\" \
      -Dcatalina.home=\"$CATALINA_HOME\" \
      -Djava.io.tmpdir=\"$CATALINA_TMPDIR\" \
      org.apache.catalina.startup.Bootstrap "$@" start \
      >> "$CATALINA_OUT" 2>&1 "&"
修改以上代码中的
>> "$CATALINA_OUT" 2>&1 &

>> /dev/null 2>&1 &

3.分割后清空日志
使用cronolog工具切割日志
下载安装cronolog

修改tomcat/bin/catalina.sh 中相关配置  (参照2中代码)
注释掉
#  touch "$CATALINA_OUT"
修改以上代码中的
>> "$CATALINA_OUT" 2>&1 &

>> | /bin/cronolog "$CATALINA_BASE"/logs/catalina.%Y-%m-%d.out >> /dev/null &

重启tomcat

删除日志参考 二 中脚本

4.手动删除
关闭tomcat。手动删除日志,重启

二、定期删除 日志

直接脚本删除,只保留最近三天的某种日志

  1. #! /bin/bash
  2. logdir=/usr/local/tomcat/webapps1
  3. cd ${logdir}
  4. declare -i filesum=`ls qc.log.* | wc -l`
  5. declare -i delnum=$filesum-
  6. if [ "${delnum}" -ge ];then
  7. rm -rf `ls -tr qc.log.* | head -${delnum}`
  8. fi
  9. ~

删除7天前的所有日志(注意两种日志格式)

  1.  
  1. #! /bin/bash
  1. find /usr/local/apache-tomcat-8.5./logs/ -mtime +7 -name "*.log" -exec rm -rf {} \;
  1. find /usr/local/apache-tomcat-8.5.28/logs/ -mtime +7 -name "*.txt" -exec rm -rf {} \;

find:linux的查找命令,用户查找指定条件的文件;

/usr/local/apache-tomcat-8.5.28/logs/ :想要进行清理的任意目录;

-mtime:标准语句写法;

+30:查找30天前的文件,这里用数字代表天数;

  1. -mtime -n +n
  2. 按照文件的更改时间来查找文件,
    - n表示文件更改时间距现在n天以内,
    + n表示文件更改时间距现在n天以前。
  3. find / -mtime - print 在系统根目录下查找更改时间在5日以内的文件
  4. find /var/adm -mtime + print 在/var/adm目录下查找更改时间在3日以前的文件

"*.log":希望查找的数据类型,"*.jpg"表示查找扩展名为jpg的所有文件,"*"表示查找所有文件,这个可以灵活运用,举一反三;

find 是我们很常用的一个Linux命令,一般查找出来的结果还会有进一步的操作,这个时候exec的作用就显现出来了。

  exec解释:

  -exec  参数后面跟的是 command 命令,它是以“;”为结束标志的,考虑到各个系统中分号会有不同的意义,所以前面加反斜杠。  

  {} 花括号代表前面find查找出来的文件名。

写个脚本基本涵盖tomcat/log 下所有logs

  1. #! /bin/bash
  2. find /usr/local/tomcat/apache-tomcat-8.5./logs/ -mtime + -name "*.log" -exec rm -rf {} \;
  3. find /usr/local/tomcat/apache-tomcat-8.5./logs/ -mtime + -name "*.txt" -exec rm -rf {} \;
  4. cat /dev/null > /usr/local/tomcat/apache-tomcat-8.5./logs/catalina.out

Tomcat 修改日志输出配置 定期删除日志的更多相关文章

  1. tomcat日志切割和定期删除(转载)

    tomcat日志切割和定期删除 在tomcat的软件环境中,如果我们任由日志文件无限增长,总有一天会将磁盘占满的(废话).特别是在日志文件增长速度很快的一些情况下,按日志切割日志文件并删除,就是一件很 ...

  2. tomcat日志切割和定期删除

    tomcat日志切割和定期删除 在tomcat的软件环境中,如果我们任由日志文件无限增长,总有一天会将磁盘占满的(废话).特别是在日志文件增长速度很快的一些情况下,按日志切割日志文件并删除,就是一件很 ...

  3. shell脚本 定期删除日志

    定期删除日志: 然后建立清除日志文件的shell脚本,文件名为clean_log只保留最近三天的日志     #! /bin/bashlogdir=/var/log/httpdcd ${logdir} ...

  4. tengine日志切割-配置分钟级别日志自动切割

    tengine日志切割-配置分钟级别日志自动切割 安装 以安装最新版本的tengine-2.1.2版本 下载连接 tengine支持许多变量 变量 $conn_requests 当前请求在长连接上的序 ...

  5. [日志] spring boot + logback 日志输出配置

    一.输出日志到控制台 springboot有很多starter(参考starter)方便快速构建项目依赖组件,logback是springboot默认的日志组件,启动即可看到打印在控制台输出的info ...

  6. nginx日志输出配置json格式

    修改nginx配置文件 http { include mime.types; default_type application/octet-stream; charset utf-8; # 原有日志格 ...

  7. Mybatis 的Log4j日志输出问题 - 以及有关日志的所有问题

    使用Mybatis的时候,有些时候能输出(主要是指sql,参数,结果)日志.有些时候就不能. 无法输出日志的时候,无论怎么配置log4j,不管是properties的还是xml的,都不起作用. 有些时 ...

  8. 日志log4j配置详情,日志log具体到你想不到

    一.Log4j简介Log4j有三个主要的组件:Loggers(记录器),Appenders (输出源)和Layouts(布局). 1.LoggersLoggers组件在此系统中被分为五个级别:DEBU ...

  9. Spring Boot系列教程六:日志输出配置log4j2

    一.前言  spring boot支持的日志框架有,logback,Log4j2,Log4j和Java Util  Logging,默认使用的是logback日志框架,笔者一直在使用log4j2,并且 ...

随机推荐

  1. 【PCIE-4】---PCIE中部分概念或问题总结(很基础很重要)

    前面三小节,介绍了PCIE的基本知识和概念,以及扫描流程.在不求甚解的情况下,我想各位小伙伴应该对PCIE有了个宏观的认识,OK,那么本章我们在之前的基础上,再单独把一些概念和更深层次的问题摘出来具体 ...

  2. 网络流入门题目 - bzoj 1001

    现在小朋友们最喜欢的"喜羊羊与灰太狼",话说灰太狼抓羊不到,但抓兔子还是比较在行的, 而且现在的兔子还比较笨,它们只有两个窝,现在你做为狼王,面对下面这样一个网格的地形: 左上角点 ...

  3. scala基本语法

    scala基本语法scala函数1 def定义方法2 方法的返回值类型可以省略3 方法体重最后一行计算结果可以返回 return 如果省略方法类型4 方法参数 要指定类型5 如果方法体可以一步搞定 方 ...

  4. 转:详解G1垃圾收集器

    G1垃圾收集器入门 说明 concurrent: 并发, 多个线程协同做同一件事情(有状态) parallel: 并行, 多个线程各做各的事情(互相间无共享状态) 参考: What’s the dif ...

  5. Java中SMB的应用

    目录 SMB 服务操作 Ⅰ SMB简介 Ⅱ SMB配置 2.1 Windows SMB Ⅲ 添加SMB依赖 Ⅳ 路径格式 Ⅴ 操作共享 Ⅵ 登录验证 SMB 服务操作 Ⅰ SMB简介 ​ SMB(全称 ...

  6. Linux下socket编程基本知识

    本文档主要讲解了Linux下socket编程的一些基本知识,主要包括套接字和字节序的概念,以及一些常用的结构体和函数. 本文是在网易云课堂学习过程中的记录,这个老师讲得很不错,推荐大家围观. Linu ...

  7. ls命名 | Linux统计文件夹内的文件个数

    ls命名 man ls -R 递归列出全部的目录内容 recusive -a 列出所有的文件(包括以 . 开头的隐藏文件) all -r 逆序排列 reverse -t 按照时间信息排序 time - ...

  8. Exchange Server 2016 本地部署安装流程

    思路:一台Server 2016用作AD+DNS,一台Server 2016用作Exchange Server 2016 Exchange Server 2016 CU14 安装路径:安装路径:htt ...

  9. 创建dynamics CRM client-side (七) - 用JS 来控制Auto-Save

    在我们的system setting里面, 我们可以设置打开/关闭 auto save的功能. 我们可以用js来控制auto-save this.formOnSave = function (exec ...

  10. java架构之路(多线程)原子操作,Atomic与Unsafe魔术类

    这次不讲原理了,主要是一些应用方面的知识,和上几次的JUC并发编程的知识点更容易理解. 知识回顾: 上次主要说了Semaphore信号量的使用,就是一个票据的使用,我们举例了看3D电影拿3D眼镜的例子 ...