• tomcat的catalina.out日志按自定义时间格式进行分割


    默认情况下,tomcat的catalina.out日志文件是没有像其它日志一样,按日期进行分割,而是全部输出全部写入到一个catalina.out,这样日积月累就会造成.out日志越来越大,给管理造成了不便,为了实现像其它日志文件一样按日期归档,这里我采用cronolog来完成日志分割。

    一、安装Cronolog

    1.yum方式安装

    # yum install cronolog
    

    2.下载压缩包安装

    1. 下载(最新版本)
    wget http://cronolog.org/download/cronolog-1.6.2.tar.gz
    
    2. 解压缩
    tar zxvf cronolog-1.6.2.tar.gz
     
    3. 进入安装目录
    cd cronolog-1.6.2
     
    4. 运行安装
    ./configure
    make
    make install
     
    5. 查看是否安装成功
    which cronolog
    结果:/usr/local/sbin/cronolog  (这个是cronolog的安装路径,后面会用到)
    

    二、修改Tomcat下bin/catalina.sh文件

    修改要分隔的Tomcat的日志下bin/catalina.sh文件,要修改的在290行。修改前先拷贝一份。
     
    1. cp catalina.sh catalina.sh.bak
    2. vim catalina.sh -c 417  或者  vim catalina.sh之后:417    (进入到catalina.sh的第417行。)
    

    下面为需要修改的内容:标红的是要修改的区域

    修改为:
      shift
      # touch "$CATALINA_OUT"
      if [ "$1" = "-security" ] ; then
        if [ $have_tty -eq 1 ]; then
          echo "Using Security Manager"
        fi
        shift
        eval $_NOHUP "\"$_RUNJAVA\"" "\"$LOGGING_CONFIG\"" $LOGGING_MANAGER $JAVA_OPTS $CATALINA_OPTS \
          -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 2>&1\
          | /usr/local/sbin/cronolog "$CATALINA_BASE"/logs/catalina.%Y-%m-%d.out >> /dev/null &
     
      else
        eval $_NOHUP "\"$_RUNJAVA\"" "\"$LOGGING_CONFIG\"" $LOGGING_MANAGER $JAVA_OPTS $CATALINA_OPTS \
          -classpath "\"$CLASSPATH\"" \
          -Dcatalina.base="\"$CATALINA_BASE\"" \
          -Dcatalina.home="\"$CATALINA_HOME\"" \
          -Djava.io.tmpdir="\"$CATALINA_TMPDIR\"" \
          org.apache.catalina.startup.Bootstrap "$@" start 2>&1\
          | /usr/local/sbin/cronolog "$CATALINA_BASE"/logs/catalina.%Y-%m-%d.out >> /dev/null &
     
      fi
    

    修改后,重启Tomcat。可以看到更改已经生效。(看到catalina.out出现了catalina.2017-12-19.out等按照日期分类的输出文件说明配置成功)。

    三、shell利用crontab自动清除日志

    1.删除文件shell命令详解

    find 对应目录 -mtime +天数 -name "文件名" -exec rm -rf {} \;
     
    例子:
        find /opt/soft/log/ -mtime +30 -name "*.log" -exec rm -rf {} \;
     
    说明:将/opt/soft/log/目录下所有30天前带".log"的文件删除。具体参数说明如下:
        find:linux的查找命令,用户查找指定条件的文件;
        /opt/soft/log/:想要进行清理的任意目录;
        -mtime:标准语句写法;
        +30:查找30天前的文件,这里用数字代表天数;
        "*.log":希望查找的数据类型,"*.jpg"表示查找扩展名为jpg的所有文件,"*"表示查找所有文件,这个可以灵活运用,举一反三;
        -exec:固定写法;
        rm -rf:强制删除文件,包括目录;
        {} \; :固定写法,一对大括号+空格+\+; 
    

    2.创建shell脚本即crontab计划任务

    # vim del-15-days-ago-logs.sh
    find /opt/soft/log/ -mtime +30 -name "*.log" -exec rm -rf {} \;
    
    # chmod +x del-15-days-ago-logs.sh
    
    # crontab -e
    
    10 0 * * * /opt/soft/log/del-15-days-ago-logs.sh >/dev/null 2>&1
    
    
    
    
  • 相关阅读:
    多选择文件打开对话框
    DirectoryExists
    获取IP地址
    获取WINDOWS特殊文件夹
    WPF WebBrowser
    DELPHI TDownLoadURL下载网络文件
    同步窗体移动 FormMove
    FireMonkey 使用Webbrowser
    网页截取图片
    FormMove
  • 原文地址:https://www.cnblogs.com/sanduzxcvbnm/p/16086800.html
Copyright © 2020-2023  润新知