본문 바로가기

개발중/Web

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

728x90
반응형

 

 


톰캣 일자별 로그 나누기

Tomcat 서버 운영 중 로그 관리의 중요성을 인식하게 되었습니다. 단일 catalina.out 파일에 모든 로그가 누적되어 관리와 분석에 어려움을 겪었습니다. 이에 로그를 일자별로 분리하여 관리하는 방법을 모색하게 되었습니다. 이 글에서는 Tomcat의 catalina.sh 스크립트를 수정하여 일별 로그 파일을 생성하는 과정과, 이를 통해 얻을 수 있는 이점, 그리고 구현 과정에서 마주친 문제점들을 공유하고자 합니다.


 

rotatelogs 위치 찾기

 

rotatelogs란 Apache HTTP Server 프로젝트의 로그 관리 유틸리티로, 로그 파일을 주기적으로 순환(rotate)시키는 기능을 제공합니다. 아래와 같이 rotatelogs 의 위치를 찾습니다.

[root@RC9-19 bin]# find / -name rotatelogs
/usr/local/src/~~?
/usr/local/src/~~?
/usr/local/apache/bin/rotatelogsa

 

catalina.sh 파일 수정

Tomcat 의 /bin 하위에 있는 catalina.sh 파일을 오픈한다.

vi /usr/local/tomcat/bin/catalina.sh

 

 

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

 

 

 

1 - 2 번 주석처리 부분을 대신해 echo "Do not touch $CATALINA_OUT" 를 넣는다

(if문 안에 빈값인 경우 오류발생)

.

 

2. 아래 코드를 찾아 "제거" 한다.

"$CATALINA_OUT" 2>&1 "&"

 

3. 해당 코드를 추가한다. 

위에서 찾은 retatelogs 경로를 추가해야한다.

2>&1 "&" | /usr/local/apache/bin/rotatelogs "$CATALINA_OUT".%Y-%m-%d 86400 540 &

 

 

결과 확인

톰캣 재기동하면 날짜 별로 생긴다.

 

트러블 슈팅 공유

아래 코드를 주석 처리하고 

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



아래 코드를 추가하라는 글도 있지만

2>&1 "&" | /usr/local/apache/bin/rotatelogs "$CATALINA_OUT".%Y-%m-%d 86400 540 &



나 같은 경우엔 아래 코드를 주석 처리 했을 경우에는 Tomcat이 백그라운드로 작동하지 않고 포그라운드로 작동해서 당황했다. ( 조심하길 )

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

 

728x90
반응형