본문 바로가기
Infra & Server Dev

톰캣 log 날짜별로 저장하기 [catalina.out]

by 필팔청춘 2014. 11. 20.

catalina.out에 로그를 남기시는 분들이 있을거에요 간단하게 System.out.println()으로 찍는거죠

log4j를 사용하는 법도 있지만 여튼 catalina.out에 남는 로그를 날짜별로 남기는 방법을 알려드리겠습니다(에러로그가 될수도있구요)


catalina.sh 파일내용을 조금 변경해주시면됩니다.(보통 경로 : /usr/local/tomcat/bin/catalina.sh)

왼쪽은 변경전 오른쪽은 변경후 입니다.


변경전 코드

shift

  touch "$CATALINA_OUT"

  if [ "$1" = "-security" ] ; then

    if [ $have_tty -eq 1 ]; then 

      echo "Using Security Manager"

    fi

    shift   

    eval "\"$_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

    eval "\"$_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 \ 

      >> "$CATALINA_OUT" 2>&1 "&"


  fi


변경후 코드

shift

  touch "$CATALINA_OUT"

  if [ "$1" = "-security" ] ; then

    if [ $have_tty -eq 1 ]; then 

      echo "Using Security Manager"

    fi

    shift   

    eval "\"$_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 \ 

      | /usr/sbin/rotatelogs "$CATALINA_OUT".%Y-%m-%d 86400 540 &

      >> "$CATALINA_OUT" 2>&1 "&"


  else

    eval "\"$_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 \ 

      | /usr/sbin/rotatelogs "$CATALINA_OUT".%Y-%m-%d 86400 540 &

      >> "$CATALINA_OUT" 2>&1 "&"


  fi



| /usr/sbin/rotatelogs "$CATALINA_OUT".%Y-%m-%d 86400 540 &

이걸 추가해준거에요 

그렇습니다 rotatelogs를 사용하는 거죠^^

즐거운 하루되세요