tomcat 日志分割
用 cronolog 分割 tomcat 的 catalina.out 文件。cronolog 官网地址
编译安装 cronolog
shellwget https://files.cnblogs.com/files/crazyzero/cronolog-1.6.2.tar.gz tar zxvf cronolog-1.6.2.tar.gz cd cronolog-1.6.2 ./configure make && make install
查看 cronolog 安装后所在目录(验证安装是否成功)
shellwhich cronolog 一般情况下显示为:/usr/local/sbin/cronolog
编辑 tomcat 目录 bin 下的 catalina.sh 文件, 找到下面这行,类似这样的行有 2 处:
sh# 修改前 org.apache.catalina.startup.Bootstrap "$@" start \ >> "$CATALINA_OUT" 2>&1 & # 修改后 org.apache.catalina.startup.Bootstrap "$@" start \ 2>&1 | /usr/local/sbin/cronolog /usr/local/tomcat/logs/icatalina.%Y-%m-%d.out >>/dev/null &
注释此行:touch “$CATALINA_OUT ",如果不好使就把整个 if 注释掉,如下图为修改后的结果
sh# 以下大概是 tomcat 目录 bin 下的 catalina.sh 文件的第 470 行的数据,修改后的结果 shift #if [ -z "$CATALINA_OUT_CMD " ] ; then # touch "$CATALINA_OUT " #else # if [ ! -e "$CATALINA_OUT " ]; then # if ! mkfifo "$CATALINA_OUT "; then # echo " cannot create named pipe $CATALINA_OUT. Start aborted." # exit 1 # fi # elif [ ! -p "$CATALINA_OUT " ]; then # echo "$CATALINA_OUT exists and is not a named pipe. Start aborted." # exit 1 # fi # $CATALINA_OUT_CMD <"$ CATALINA_OUT " & #fi if [ "$1" = "-security" ] ; then if [ $have_tty -eq 1 ]; then echo "Using Security Manager" fi shift eval $_NOHUP "\"$_RUNJAVA\"" "\"$CATALINA_LOGGING_CONFIG\"" $LOGGING_MANAGER "$JAVA_OPTS" "$CATALINA_OPTS" \ -D$ENDORSED_PROP="\"$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 2>&1 \ | /usr/local/sbin/cronolog "$CATALINA_OUT" >> /dev/null & else eval $_NOHUP "\"$_RUNJAVA\"" "\"$CATALINA_LOGGING_CONFIG\"" $LOGGING_MANAGER "$JAVA_OPTS" "$CATALINA_OPTS" \ -D$ENDORSED_PROP="\"$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 "$CATALINA_OUT" >> /dev/null & fi
然后重启 tomcat,查看日志结果。