본문 바로가기
OS & Server/Linux

[Apache Tomcat] 톰캣 일자별 로그 나누기

by 주리니e 2022. 7. 19.
728x90

[Apache Tomcat] 톰캣 일자별 로그 나누기

 

 

Apache 와 Apache Tomcat을 연동하여 사용하다보면 톰캣의 로그(catalina.out)가 일자별로 쌓이지 않고 하나의 파일로 계속 쌓이게 된다. 이 로그파일은 나중에 무분별하게 커져 서버가 셧다운될 수 있으니 Apache의 rotatelogs 기능을 사용하여 일자별로 나누어보자. rotatelogs를 찾을 수 없는 경우에는 Apache(httpd)를 설치해준다.

 

# rotatelogs 찾기
$ find / -name rotatelogs
/usr/sbin/rotatelogs

 

# 톰캣 홈의 bin 디렉토리로 이동
$ cd /usr/share/tomcat10/bin

$ vi catalina.sh

 

1. touch "$CATALINA_OUT" 을 찾아 주석처리한다.
#touch "$CATALINA_OUT

2. 1번 주석처리 부분을 대신해 echo "Do not touch $CATALINA_OUT" 를 넣는다 (if문 안에 빈값인 경우 오류발생)
echo "Do not touch $CATALINA_OUT"


3. >> "$CATALINA_OUT" 2>&1 "&" 을 주석처리한다.
#>> "$CATALINA_OUT" 2>&1 "&" 


4. 3번 주석처리 부분을 대신해 2>&1 "&" | /usr/sbin/rotatelogs "$CATALINA_OUT".%Y-%m-%d 86400 540 & 을 삽입한다.
2>&1 "&" | /usr/sbin/rotatelogs "$CATALINA_OUT".%Y-%m-%d 86400 540 &

catalina.sh

 

# 톰캣 재시작
$ service tomcat restart

톰캣을 재시작하면 위 사진과 같이 catalina.out.2022-07-19 처럼 앞으로는 일자별로 로그가 저장된다.

728x90

댓글