随风飞世 发表于 2018-11-30 11:33:50

cronolog分割tomcat catalina.out 日志

  日志分割的起因
  

  随着时间的推移,catalina.out这个文件的尺寸将会越来越大,当需要检查日志内容时会导致文件难以打开,而且同时tomcat依旧在不断的向文件中输入内容,这也会降低tomcat的性能。因此将tomcat产生的catalina.out文件根据日期来分割,将每天产生的日志存放在一个独立的文件中,这样单个log文件就不会太大,而且过期的日志文件可以根据情况删除掉,或者备份到其他地方。(据说tomcat有默认的日志分割功能,能每天自动生成类似catalina.2010-10-08.log的文件,但是默认catalina.out文件却一直增长.)
  

  以切分tomcat的catalina.out的日志为例
  

  1安装cronolog
  

  wget http://cronolog.org/download/cronolog-1.6.2.tar.gz
  tar zxf cronolog-1.6.2.tar.gz
  cd cronolog-1.6.2
  ./configure
  make && make install
  

  用which cronolog可以查到安装的路径,默认应该是/usr/local/sbin/cronolog,这个路径待会在修改catalina.sh时会用到。如下:
  # which cronolog
  /usr/local/sbin/cronolog
  

  2修改catalina.sh这是重点
  

  以Apache Tomcat/7.0.42为例
  

  第一步:
  将
  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
  

  第二步:
  将
  touch "$CATALINA_OUT"
  修改为
  #touch "$CATALINA_OUT"
  

  第三步:
  将
  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 &总共有两处
  

  3重启tomcat
  在日志目录下就会多了一个catalina.2014-06-12.out的日志
  

  日志切割成功
  

  附:
  

  以tomcat 6.0.20为例
  

  按上面方法先安装cronolog
  

  再修改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 &
  

  总共有两处 ****
  

  将
  touch "$CATALINA_BASE"/logs/catalina.out
  改为
  #touch "$CATALINA_BASE"/logs/catalina.out
  

  重启TOMCAT
  

  相关链接:http://www.codesky.net/article/201111/173700.html
  http://www.cnblogs.com/yjhrem/articles/3147686.html
  




页: [1]
查看完整版本: cronolog分割tomcat catalina.out 日志