zoukankan      html  css  js  c++  java
  • Tomcat 修改日志输出配置 定期删除日志

    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。手动删除日志,重启  







    二、定期删除 日志

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

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

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

    
    
    #! /bin/bash
    find /usr/local/apache-tomcat-8.5.28/logs/ -mtime +7 -name "*.log" -exec rm -rf {} ;
    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天前的文件,这里用数字代表天数;

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

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

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

      exec解释:

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

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

     

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

    #! /bin/bash
    find /usr/local/tomcat/apache-tomcat-8.5.28/logs/ -mtime +7 -name "*.log" -exec rm -rf {} ;
    find /usr/local/tomcat/apache-tomcat-8.5.47/logs/ -mtime +7 -name "*.txt" -exec rm -rf {} ;
    cat /dev/null > /usr/local/tomcat/apache-tomcat-8.5.47/logs/catalina.out

     


  • 相关阅读:
    tiger-complier 问题记录 类型检查
    leetcode 854. K-Similar Strings
    FPO优化简介
    [转载]深入解析结构化异常处理
    再看链接-WIN
    管道控制Telnet
    管道 简介与简单使用
    Detours 简介与简单使用
    netStat逆向分析
    Fport逆向分析以及C++实现
  • 原文地址:https://www.cnblogs.com/centos2017/p/7896663.html
Copyright © 2011-2022 走看看