zoukankan      html  css  js  c++  java
  • tomcat 日志拆分

    一、用cronolog分割tomcat的catalina.out文件
    1、编译安装cronolog
    wget http://cronolog.org/download/cronolog-1.6.2.tar.gz
    tar zxvf cronolog-1.6.2.tar.gz
    cd cronolog-1.6.2
    ./configure
    make && make install
    2、查看cronolog安装后所在目录(验证安装是否成功)
    which cronolog
    一般情况下显示为:/usr/local/sbin/cronolog
    3、编辑tomcat目录bin下的catalina.sh文件
    找到下面这行,类似这样的行有2处:
    org.apache.catalina.startup.Bootstrap "$@" start
    >> "$CATALINA_OUT" 2>&1 &
      第一处:tomcat是带“-security”参数的启动,
      第二处:默认tomcat启动方式,也就是else下面的那部分,我们只修改这里。
      另外还要把touch “$CATALINA_OUT"这行注释掉。
    # touch "$CATALINA_OUT"
    if [ "$1" = "-security" ] ; then
    if [ $have_tty -eq 1 ]; then
    echo "Using Security Manager"
    fi
    shift
    "$_RUNJAVA" "$LOGGING_CONFIG" $LOGGING_MANAGER $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
    "$_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 /usr/local/tomcat/logs/catalina.%Y%m%d.out >> /dev/null &
    # >> "$CATALINA_OUT" 2>&1 &

    fi
    4、重启tomcat

    二、使用log4j成功使catalina.out文件实现分割
    在tomcat根目录下建立common/classes/log4j.properties,内容如下
    log4j.rootLogger=INFO, R
    log4j.appender.R=org.apache.log4j.RollingFileAppender
    log4j.appender.R.File=${catalina.home}/logs/tomcat.newlog #设定日志文件名
    log4j.appender.R.MaxFileSize=100KB #设定文件到100kb即分割
    log4j.appender.R.MaxBackupIndex=10 #设定日志文件保留的序号数
    log4j.appender.R.layout=org.apache.log4j.PatternLayout
    log4j.appender.R.layout.ConversionPattern=%p %t %c - %m%n
    2、在tomcat根目录下的common/lib下加入log4j.jar和commons-logging.jar
    3、重新启动tomcat即可。
    三、编写一个.sh文件,并放到tomcat下的bin目录,在cron中自动执行,shell脚本如下:
    #!/bin/bash

    cd `dirname $0`
    d=`date +%Y%m%d`
    d7=`date -d'7 day ago' +%Y%m%d`

    cd ../logs/

    cp catalina.out catalina.out.${d}
    echo "" > catalina.out
    rm -rf catalina.out.${d7}

    四、在/etc/logrotate.d下新建文件。tomcat
    编辑该文件,写入脚本。 vim /etc/logrotate.d/tomcat
    /opt/tomcat/logs/catalina.out { # catalina.out日志路径
    copytruncate # 复制清空
    rotate 15 # 保留15份日志
    nocompress # 不压缩日志
    missingok # 日志不存在时不报错
    size 100k # 超过100k就复制
    }
    说明:该脚本会随着cron.daily(系统自带定时器)每天执行一次,如果此时catalina.out文件大小超过100k, 就会复制一份catalina.out-yyyyMMdd出来,然后清空catalina.out文件
    已验证,当size比较小时,与按日期拆分效果一致

  • 相关阅读:
    CSS文本部分之字体样式[1]
    CSS基础之简单介绍
    [09]HTML基础之全局属性
    [08]HTML基础之视频标签
    [07]HTML基础之图片标签
    [06]HTML基础之表单标签
    [05]HTML基础之表格标签
    sonarqube启动报错
    rhel6下kvm克隆后的操作登录新克隆的虚拟机重新配置网络
    解决KVM 宿主机redhat6系统上shutdown关不了虚拟机的问题
  • 原文地址:https://www.cnblogs.com/cowshed/p/11397681.html
Copyright © 2011-2022 走看看