1. 개요

  • Tomcat이 제공안해주는 catalina.out Log Rotate 방법.

2. 방법

 touch "$CATALINA_OUT"
 if [ "$1" = "-security" ] ; then
    if [ $have_tty -eq 1 ]; then
       echo "Using Security Manager"
    fi      
    shift
    eval $_NOHUP "\"$_RUNJAVA\"" "\"$LOGGING_CONFIG\"" $LOGGING_MANAGER $JAVA_OPTS $CATALINA_OPTS \
      -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
    eval $_NOHUP "\"$_RUNJAVA\"" "\"$LOGGING_CONFIG\"" $LOGGING_MANAGER $JAVA_OPTS $CATALINA_OPTS \
      -classpath "\"$CLASSPATH\"" \
      -Dcatalina.base="\"$CATALINA_BASE\"" \
      -Dcatalina.home="\"$CATALINA_HOME\"" \
      -Djava.io.tmpdir="\"$CATALINA_TMPDIR\"" \
      org.apache.catalina.startup.Bootstrap "$@" start \
      >> "$CATALINA_OUT" 2>&1 "&"

  fi
  • Apache HTTP Server 에서 rotatelogs를 "$CATALINA_BASE"/bin/ 하위로 가져와야 한다.
  •  "$CATALINA_BASE"/bin/catalina.sh 을 열어서 수정을 하면 된다.
  • catalina.sh 스크립트에서 위 설정의 굵은 글씨(Bold 처리)된 설정을 아래와 같이 변경해 주면 된다.
touch "$CATALINA_OUT"
=> # touch "$CATALINA_OUT"      

      org.apache.catalina.startup.Bootstrap "$@" start \
      >> "$CATALINA_OUT" 2>&1 "&"
   => org.apache.catalina.startup.Bootstrap "$@" start 2>&1 \ 
      |"$CATALINA_BASE"/bin/rotatelogs "$CATALINA_BASE"/logs/catalina.out.%Y.%m.%d 86400 &

      org.apache.catalina.startup.Bootstrap "$@" start \ 
      >> "$CATALINA_OUT" 2>&1 "&
       => org.apache.catalina.startup.Bootstrap "$@" start 2>&1 \ 
            |"$CATALINA_BASE"/bin/rotatelogs "$CATALINA_BASE"/logs/catalina.out.%Y.%m.%d 86400 &