zoukankan      html  css  js  c++  java
  • cronolog分割Tomcat catalina.out日志

    Linux上tomcat的日志输出在catalina.out里面,随着时间的推移,产生的日志文件会越来越大,其主要是调试中打印的一些信息占空间,比如说System.out和log等等。tomcat 的catalina.out文件的不断扩大,导致系统磁盘空间边变小,也不方便查看,所以使用cronolog按日期分割日志(例子里面以天为分割单位)。
    • cronolog安装

    1. # tar zxvf cronolog-1.6.2.tar.gz
      # cd cronolog-1.6.2
      # ./configure
      # make
      # make install
    • 查看cronolog安装后所在目录(验证安装是否成功)

      # which cronolog

      正常情况下显示:

      /usr/local/sbin/cronolog

    • 要想分割tomcat的catalina.out,需作如下工作:

      Tomcat7以前的版本:

      (1)注释掉(#)

      touch “$CATALINA_BASE”/logs/catalina.out

      (2)修改tomcat bin目录下的catalina.sh文件中的两处

      org.apache.catalina.startup.Bootstrap “$@” start  \

      >> “$CATALINA_BASE”/logs/catalina.out 2>&1 &

      org.apache.catalina.startup.Bootstrap "$@" start  2>&1 \

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

    • 完成之后重起Tomcat就可以看到logs文件中存在catalina.out.2015-09-13样式的日志。
    • Tomcat7以后的版本:
      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/local/sbin/cronolog "$CATALINA_OUT" >> /dev/null &
    • 或者进行下面的操作步骤效果一样(推荐):

    # vi bin/catalina.sh

    找到下面这行

          org.apache.catalina.startup.Bootstrap "$@" start \
          >> "$CATALINA_OUT" 2>&1 &

    类似这样的行有2处,第一处是tomcat时带“-security”参数的启动,第二处是默认tomcat启动方式,也就是else下面的那部分,我们只修改这里。

    另外还要把touch “$CATALINA_OUT"这行注释掉。

    完整的修改如下:
      #touch "$CATALINA_OUT"
      if [ "$1" = "-security" ] ; then
         ........
      else
    eval "\"$_RUNJAVA\"" "\"$LOGGING_CONFIG\"" $LOGGING_MANAGER $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 2>&1 \
    | /usr/local/sbin/cronolog "$CATALINA_BASE"/logs/catalina.%Y-%m-%d.out >>/dev/null &
    fi

    完成之后重起Tomcat就可以看到logs文件中存在catalina.out.2015-09-13样式的日志。

  • 相关阅读:
    Flask把变量注册到模板中
    $.each与$(data).each区别
    【Python备忘】python判断文件和文件夹是否存在
    ISP图像质量自动化测试方法
    使用微软的(how-old.net)构建智能门店管理系统
    在virtualenv中安装libxml2和libxslt
    Python 装饰器学习以及实际使用场景实践
    tensorflow零起点快速入门(4) --入门常用API
    tensorflow零起点快速入门(3)
    树莓派和STM32通过USB和串口通信记录
  • 原文地址:https://www.cnblogs.com/kevinchou/p/5704451.html
Copyright © 2011-2022 走看看