Tag Archives: tomcat

Tomcat 로그 최대한 줄여보기

기존에 작성했던 [이곳]의 글은 catalina.out 파일을 쓰지 못하게 하여 중복 로깅을 못하게 하는 방법이었습니다.

실제로 톰캣은 catalina.<날짜>와 catalina.out 두개의 파일을 로깅하고 있어 퍼포먼스에 조금 신경이 쓰이는 부분이었습니다.

기존의 글을 토대로 catalina.out을 제거하였다고 쳐도 admin이나 localhost같은 특이한 로그 파일이 자꾸 늘어나는것도 신경이 조금 쓰이더군요.

톰캣의 conf 디렉토리 안에있는 logging.properties 안의 내용을 다음과 같이 수정하여 봅시다.
[code]handlers = 1catalina.org.apache.juli.FileHandler

1catalina.org.apache.juli.FileHandler.level = INFO
1catalina.org.apache.juli.FileHandler.directory = ${catalina.base}/logs
1catalina.org.apache.juli.FileHandler.prefix = catalina.[/code]
위의 내용을 제외한 나머지는 모두 주석처리 해버리면 catalina.<날짜> 형태의 로그 외에는 모두 기록하지 않습니다.

개발환경이 아닌 단순 서비스 환경에서는 이렇게 로그를 최소화 하는것이 좋겠네요.

1catalina.org.apache.juli.FileHandler.level 의 값을 조정하여 로그 레벨을 정의할수도 있습니다.

Tomcat 무분별하게 catalina.out 크기 커지는것 막기

Tomcat의 로그를 보다보니 날짜별로 로그 파일을 나누어 쌓고 있음과 동시에 catalina.out이라는 파일에도 중복하여 로그를 쌓는것을 알수 있다.

이 파일은 끝없이 커지는데 관리상 좋지 못한것은 자명한 일이다. 이 문제를 해결하기 위해 catalina.sh 파일을 수정한다.

start 부분을 찾아 다음과 같이 수정하자.

[code]elif [ “$1” = “start” ] ; then
    shift
#  touch “$CATALINA_BASE”/logs/catalina.out
  if [ “$1” = “-security” ] ; then
    echo “Using Security Manager”
    shift
    “$_RUNJAVA” $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 \
      >> /dev/null 2>&1 &
#      >> “$CATALINA_BASE”/logs/catalina.out 2>&1 &

      if [ ! -z “$CATALINA_PID” ]; then
        echo $! > $CATALINA_PID
      fi
  else
    “$_RUNJAVA” $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 \
      >> /dev/null 2>&1 &
#      >> “$CATALINA_BASE”/logs/catalina.out 2>&1 &

      if [ ! -z “$CATALINA_PID” ]; then
        echo $! > $CATALINA_PID
      fi
  fi[/code]
* 추가 – 더 편한 방법
언제 부터인가 위의 설정이 >> “$CATALINA_OUT” 2>&1 &와 같이 바뀌었습니다.
/etc/profile에 다음을 추가하셔도 한방에 해결됩니다.
[code]export CATALINA_OUT=”/dev/null”[/code]