Tomcat日志分割的三种办法

一 cronolog

1、安装 cronlog 

yum install -y cronolog httpd

2、修改bin/catalina.sh文件

(1)   if [ -z "$CATALINA_OUT" ] ; then

CATALINA_OUT="$CATALINA_BASE"/logs/catalina.out
fi

改为:

if [ -z "$CATALINA_OUT" ] ; then
CATALINA_OUT="$CATALINA_BASE"/logs/%Y-%m-%d.catalina.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/sbin/cronolog "$CATALINA_OUT" >> /dev/null&

备注:这里有两处这个样子的,似乎改下面那处就可以了,我是把两处都改了...

3、重启服务即可。

tips:不能再用原来的catalina.out 来输出日志了哦,因为刚刚不是被我们注释掉了...

有关cronolog有疑问的话还可以参考这里

  Linux 日志切割工具cronolog详解:https://blog.csdn.net/chenkeqin_2012/article/details/52670887

  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 &
  1.   第一处:tomcat是带“-security”参数的启动,
  2.   第二处:默认tomcat启动方式,也就是else下面的那部分,我们只修改这里。
  3.   另外还要把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

  查看日志目录是否生成catalina.yymmdd.out的日志文件

  -rw-r--r-- 1 root root 10537 Jul 30 10:50 catalina.20140730.out

  配置cronolog完成了,观察每天是否有一个新的catalina.yymmdd.out的日志文件生成,定期删除日期较旧的日志文件。

二 log4j

1、在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即可。

三   XShell脚本

#!/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}

或者参考这种方法

想要写一个Shell脚本,定期清理掉久远的日志文件 ,避免磁盘不断被占用。

1、创建Shell 脚本:

 touch auto_del_log.sh

 chmod +x auto_del_log.sh

#!/bin/sh
find /usr/local/fz_regulator/logs/ -mtime +60 -name "*.out" -exec rm -rf {} \;
find /usr/local/fz_middlekey/logs/ -mtime +60 -name "*.out" -exec rm -rf {} \;

find:linux的查找命令,用户查找指定条件的文件;
/usr/local/fz_middlekey/logs/:想要进行清理的任意目录;
-mtime:标准语句写法;
+60:查找60天前的文件,这里用数字代表天数;
"*.out":希望查找的数据类型,"*.jpg"表示查找扩展名为jpg的所有文件,"*"表示查找所有文件,这个可以灵活运用,举一反三;
-exec:固定写法;
rm -rf:强制删除文件,包括目录;
{} \; :固定写法,一对大括号+空格+\+; 

2、安装定时器 crontabs

yum install crontabs

/sbin/service crond start //启动服务

3、加入定时任务

crontab -e //编辑当前用户的crontab文件,可指定具体的用户

加入我们的定时任务(表示每天4点10分跑一次脚本):10 4 * * * /usr/local/auto_del_log.sh >/dev/null 2>&1 

转载链接

Tomcat的日志分割三种方法 - 思维无界限 - 博客园一、Tomcat的日志分割三种方法 一、方法一:用cronolog分割tomcat的catalina.out文件 Linux 日志切割工具cronolog详解:https://blog.csdn.nehttps://www.cnblogs.com/happy-king/p/9193401.html#_label0_1

Tomcat 日志分割. - JMCui - 博客园一、前言 随着每天业务的增长,Tomcat 的catalina.out日志 变得越来越大,占用磁盘空间不说。要查看某个时候的日志的时候,庞大的日志让你顿时无从下手,所以日志的切割的变得刻不容缓。而且,https://www.cnblogs.com/jmcui/p/8000552.html

猜你喜欢

转载自blog.csdn.net/qq_34823218/article/details/121146613