使用cronolog切割tomcat日誌

   運維是很苦逼的。這篇博客是由於上次公司生產環境出了個小問題,三個人去打開catalina.out這個日誌。最後導致內存不足。查看一下三個項目的日誌文件都在2個G,說大也不大。說笑不小!於是就想到要按照天切割!

網上有好多方法去切割日誌,有一個比較坑的方法就是shell腳本,每天是能夠切割成日誌。可是操蛋玩意,每天的日誌都是空的!想找只狗都找不到!領導要求易上手,易配置。不寫定時任務的!所以我選擇了cronolog的這個工具!


一、安裝cronlog

下載地址: http://download.chinaunix.net/download.php?ResourceID=1851&id=3457

./configure

make && make install


默認安裝位置:

which cronolog

/usr/local/sbin/cronolog

二、配置分割tomcat日誌

1、要找到tomcat/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
    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

保存退出

重啓Tomcat服務

補充:個人做法 找到tomcat/conf/logging.properties

編輯

#1catalina.org.apache.juli.AsyncFileHandler.level = FINE

#1catalina.org.apache.juli.AsyncFileHandler.directory = ${catalina.base}/logs

#1catalina.org.apache.juli.AsyncFileHandler.prefix = catalina.

mv logging.properties logging.properties_bak

這樣重啓服務日誌文件夾裏就存了一種切割後的日誌形式

-rw-r--r-- 1 root root 37507 5月  12 13:27 catalina.20160512.out

以後會每天生成這樣一個catalina.date.out的文件。。。。。


三、總結

問題1、


在修改 org.apache.catalina.startup.Bootstrap此處時,與上一行有了一個空行。就報沒有找打這個命令的錯誤!

解決辦法:當然是要去掉那個空行了啊.


問題2

在修改上個命令時,一定要確定那是一行。。。。自己意會去吧!


from http://9907516.blog.51cto.com/9897516/1772638

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章