민서네집

catalina.out log 파일을 시간대 별로 분리하기 본문

Java

catalina.out log 파일을 시간대 별로 분리하기

브라이언7 2013. 12. 13. 11:38

Rotating catalina.out log files

http://www.tomcatexpert.com/knowledge-base/rotating-catalinaout-log-files


CentOS 6.4 버전에 cronolog 프로그램이 설치되어 있지 않지만, rotatelogs 프로그램은 default 로 설치되어 있었다.


그래서 rotatelogs 를 사용하여 catalina.out 을 날짜별/시간별로 로그 파일을 쌓았다.


지금은 debugging 용도로 해서 로그를 많이 찍고 있기 때문에 2시간 단위로 로그 파일을 분리했다.


bin/catalina.sh file에서 다음 부분을 찾아서 빨간색 칠 된 부분을 다음과 같이 수정한다.


2>&1 "&" | /usr/sbin/rotatelogs $CATALINA_BASE/logs/waslog-%Y-%m-%d_%H.out 7200 540 &


7200초 = 2시간


540 은 우리나라 시간대가 UTC보다 +9시간 이기 때문에 지정해 준 것이다. 하루 단위로 생성되게 하려면 이 옵션이 꼭 필요하다.


  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


[참고]

< Logging in Tomcat >




웹서버 로그 분할 하기(rotatelogs, cronolog, shell script)





Comments