Recent Posts
Recent Comments
Link
12-04 00:16
Today
Total
관리 메뉴

삶 가운데 남긴 기록 AACII.TISTORY.COM

CentOS 7에서 tomcat 8의 로그 파일 catalina.out 를 날짜별 생성 본문

DEV&OPS/Linux & Cloud

CentOS 7에서 tomcat 8의 로그 파일 catalina.out 를 날짜별 생성

ALEPH.GEM 2022. 6. 28. 22:11

tomcat설치경로/logs/catalina.out 파일은 그냥 두면 용량이 무한정 커집니다.

 

그러면 로그파일을 열기도 어려울뿐더러 검색도 어렵고 나중엔 결국 tomcat이 다운될 수 있습니다.

 

그래서 날짜별로 로그를 출력하는 방법을 보통 사용합니다.

 

검색해보면 여러 방법들이 나오지만 저는 가장 간단한 방법 중의 하나인

 

apache의 rotatelogs를 사용하는 방법을 포스팅하겠습니다.

 

테스트는 centos7 tomcat8에서 이루어졌습니다.

 

1. apache를 설치합니다.

yum install httpd

y/n 여부를 묻는 메시지가 나오면 y를 입력 후 엔터를 치시면 됩니다.

 

complete! 메시지가 나오면 설치 완료입니다.

 

2. rotatelogs 설치경로 확인

find / -name "rotatelogs" 2>/dev/null

rotatelogs가 설치된 경로를 확인합니다.

 

저의 경우 usr/sbin/rotatelogs  에 설치가 되어있습니다.

 

여기서는 tomcat만 사용하고 따로 apache를 사용하지 않아서 그 외에 설정은 다루지 않겠습니다.

 

3. tomcat설치경로/bin/catalina.sh 편집

vi catalina.sh

vi 편집기의 검색 명령어인 / 키를 누르고 touch를 입력 후 엔터

/touch

 그다음 n 키를 눌러 다음 문자열 검색을 하다 보면 아래와 같은 부분을 찾을 수 있습니다.

touch "$CATALINA_OUT"
if [ "$1" = "-security" ] ; then
//중략
org.apache.catalina.startup.Bootstrap "$@" start \
>> "$CATALINA_OUT" 2>&1 "&"
else
//중략
org.apache.catalina.startup.Bootstrap "$@" start \
>> "$CATALINA_OUT" 2>&1 "&"
fi

위처럼 if 문에서 한번 else문에서 한번,  똑같은 로그 출력 구절이 두 번 나오는데요.

 

touch "$CATALINA_OUT"  행을 주석(#) 처리한 후

 

아래처럼 명령어를 추가해줍니다.

 

단, /usr/sbin/rotatelogs 라는 경로는 2. 번에서 find로 검색했던 rotatelogs 경로를 말합니다.

 

#touch "$CATALINA_OUT"
if [ "$1" = "-security" ] ; then
//중략
org.apache.catalina.startup.Bootstrap "$@" start \
| /usr/sbin/rotatelogs "$CATALINA_OUT".%Y-%m-%d 86400 540 &
>> "$CATALINA_OUT" 2>&1 "&"
else
//중략
org.apache.catalina.startup.Bootstrap "$@" start \
| /usr/sbin/rotatelogs "$CATALINA_OUT".%Y-%m-%d 86400 540 &
>> "$CATALINA_OUT" 2>&1 "&"
fi

wq를 누르고 저장합니다.

 

이후 톰캣을 재시작합니다.

 

이제 catalina.out.오늘날짜 파일이 생긴 것을 확인할 수 있습니다.

 

그리고 내일이 되면(86400초) 날짜가 바뀌어 로그파일이 생성되는 것을 확인하실 수 있습니다.

 

 

 

 

DEV

 

728x90