개요

catalina.out 파일은 Tomcat 구동중 발생하는 모든 내용을 기록하는 log 파일로 별도의 설정이 없을시 1개의 파일로 모든 내용을 기록하게 된다. 즉 이 파일이 끊임없이 커지게 된다. 최악의 경우 배포할때 파일이 잘려서 올라간다거나 용량이 가득차 log가 남지 못하다거나 여러가지 문제가 발생할 수 있는데, 이때 취할 수 있는 조치와 설정방법을 정리해놓는다.

  • 일별로 파일 생성
  • 서버로그와 애플리케이션 로그의 분할

일자별로 catalina.out 파일 생성하기

startup.sh, shutdown.sh 는 내부적으로 catalina.sh 를 실행하도록 되어있다. ${INSTANCE_DIR}/bin/catalina.sh 파일의 다음 부분을 수정한다.

  touch "$CATALINA_OUT"       →  #touch "$CATALINA_OUT"   …… >> "$CATALINA_OUT" 2>&1 "&" → >> "$CATALINA_OUT"$(date '+%Y-%m-%d') 2>&1 "&" 

이때 출력부의 옵션은 자유롭게 지정할 수 있다. 

(참고로 위 스크립트는 다음 환경에서 작동을 확인했다.)

/etc/centos-release:CentOS Linux release 7.2.1511 (Core) /etc/os-release:NAME="CentOS Linux" /etc/os-release:VERSION="7 (Core)" /etc/os-release:ID="centos" /etc/os-release:ID_LIKE="rhel fedora" /etc/os-release:VERSION_ID="7" /etc/os-release:PRETTY_NAME="CentOS Linux 7 (Core)" /etc/os-release:ANSI_COLOR="0;31" /etc/os-release:CPE_NAME="cpe:/o:centos:centos:7" /etc/os-release:HOME_URL="https://www.centos.org/" /etc/os-release:BUG_REPORT_URL="https://bugs.centos.org/" /etc/os-release:CENTOS_MANTISBT_PROJECT="CentOS-7" /etc/os-release:CENTOS_MANTISBT_PROJECT_VERSION="7" /etc/os-release:REDHAT_SUPPORT_PRODUCT="centos" /etc/os-release:REDHAT_SUPPORT_PRODUCT_VERSION="7" /etc/redhat-release:CentOS Linux release 7.2.1511 (Core) /etc/system-release:CentOS Linux release 7.2.1511 (Core) 

서버로그와 애플리케이션 로그의 분할

catalina.out 을 아예 발생시키지 않은 후 서버 상태로그는 catalina.yyyy-mm-dd.log로, 애플리케이션 단위 로그는 log4j 등으로 데일리로그를 발생시키도록 구축사용하여 관리할 수도 있다.

catalina.yyyy-mm-dd.log 는 JULI를 ${INSTANCE_DIR}/logs 폴더에 자동생성 해주고 있을 것이다. 아래는 atalina.out 을 발생시키지 않는 설정이다. ${INSTANCE_DIR}/bin/catalina.sh 파일의 다음 부분을 수정한다.

if [ -z "$CATALINA_OUT" ] ; then   CATALINA_OUT="$CATALINA_BASE"/logs/catalina.out fi 
→ 
 if [ -z "$CATALINA_OUT" ] ; then   #CATALINA_OUT="$CATALINA_BASE"/logs/catalina.out   *CATALINA_OUT=/dev/null* fi 

데일리로그의 경우 프로젝트 별로 상이한 방법으로 구축되어 있기에 여기에 기록하지 않는다.

 

이슈사항

JRE_HOME, JAVA_HOME, TOMCAT_HOME 이 Tomcat이 인식하는 디폴트 패스와 차이가 있을 경우 설정파일을 제대로 읽지 못하는 수가 있다. 이 경우 패스에 대한 설정을 config 파일내에서 별도로 잡아주어야 한다. 

+ 2018.09.13 : linux 기반 특정 OS의 경우 open JDK가 기본으로 설치되어 있는 경우가 있는데, 이 경우 문제가 발생. (우분투 발견)

 

 

반응형

BELATED ARTICLES (관련글)

more