tomcat日志自动分割(linux)cronolog

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了tomcat日志自动分割(linux)cronolog相关的知识,希望对你有一定的参考价值。

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 “[email protected]” start  \

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

    org.apache.catalina.startup.Bootstrap "[email protected]" 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 "[email protected]" start \

    >> "$CATALINA_OUT"  2>&1 &

    修改为

    org.apache.catalina.startup.Bootstrap "[email protected]" start 2>&1 \

    | /usr/local/sbin/cronolog "$CATALINA_OUT" >> /dev/null &

  • 或者进行下面的操作步骤效果一样(推荐):

# vi bin/catalina.sh

找到下面这行

      org.apache.catalina.startup.Bootstrap "[email protected]" 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 "[email protected]" 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样式的日志。



本文出自 “梦想照进现实” 博客,请务必保留此出处http://lookingdream.blog.51cto.com/5177800/1960817

以上是关于tomcat日志自动分割(linux)cronolog的主要内容,如果未能解决你的问题,请参考以下文章

Linux下使用cronolog切割服务器日志文件的方法

Linux下Tomcat日志分割

tomcat8 日志路径,乱码,自动分割 问题解决

linux 怎么把tomcat日志按日期分割

linux tomcat 日志分割

Linux Redhat 6.5 apache日志分割