티스토리 뷰

728x90

🚀Tomcat 로그 종류

tomcat9는 기본적으로 6가지의 로그를 생성해준다.

지금까지 내가 사용한 로그는 catalina.out 뿐이었는데, 이번에 3년지난 로그를 지우면서 톰캣로그에 대해서 자세히 알아보기로 했다.

1. catalina.out

Tomcat 기동 시 /bin/catalina.sh 에 의해 생성되는 로그 파일
콘솔에 표시되는 모든 것을 기록한다. (톰캣에 의해 생성되는 로그, DB로그 등등)

2. catalina.yyyy-mm-dd.log

톰캣에 의해 생성되는 로그만 기록

Standard output(표준 스트림), Standard error(표준 에러)의 로깅은 제외

단순히 catalina.out을 일별로 나누어놓은 파일이라고 생각했는데 아니었다.

1과 2를 동일한 기준으로 로그를 확인해보면 (왼 : catalina.out 오 : catalina.yyyy-mm-dd.log) 차이점을 알 수 있다.

catalina.out에는 서버에서 일어나는 일들을 모두 기록하여 웹소켓 로그가 기록되었지만, catalina.yyyy-mm-dd.log은 톰캣에 의해 생성되는 로그만 기록되어 있는 것을 확인 해 볼 수 있다.

3. host-manager.log

Tomcat Host Manager Web app 로그 (가상 호스트 매니저)

- 로그는 생겼으나 기록된 내용이 없어서 정확히 무엇을 기록하는지 잘 모르겠다.

4. manager.log

Tomcat Manager Web App 로그 (웹콘솔)

- 로그는 생겼으나 기록된 내용이 없어서 정확히 무엇을 기록하는지 잘 모르겠다.

5. localhost.log

host (특정 가상 호스트 대상) 한정 로그

톰캣을 종료할 때와, 톰캣 시작시 로그를 기록한다.

톰캣 종료 시 기록되는 로그
톰캣 시작시 기록되는 로그

6. localhost_access_log.yyyy-mm-dd.txt

어느 host에서 언제, 어떤 방식으로 데이터 요청했는지 기록

어떤 IP를 가진 사용자가 몇시에 어떤 자원(url)을 어떤 방식으로(GET/POST)방식으로 했는지와 요청에 대한 응답 상태코드가 기록된다.

🔎톰캣 로그 안생기게 하기

catalina.out나 localhost_access_log.yyyy-mm-dd.txt 는 유용하나 아무 내용도 없는 host-manager.log 와 manager.log는 굳이 쌓을 필요가 없을 것 같아 아예 생성이 되지 않게 하려고 한다.

그 때 확인 해야 하는 곳은 /tomcat/conf/logging.properties이다.

파일을 열어보면

vi /tomcat/conf/logging.properties

아래와 같이 로그 관련된 설정이 있다.

logging.properties

여기서 안생기게 하고 싶은 로그 관련 설정을 주석처리 하거나, 지워주면 된다.

나는 주석으로 처리했다.

#3manager.org.apache.juli.AsyncFileHandler.level = FINE
#3manager.org.apache.juli.AsyncFileHandler.directory = ${catalina.base}/logs
#3manager.org.apache.juli.AsyncFileHandler.prefix = manager.

#4host-manager.org.apache.juli.AsyncFileHandler.level = FINE
#4host-manager.org.apache.juli.AsyncFileHandler.directory = ${catalina.base}/logs
#4host-manager.org.apache.juli.AsyncFileHandler.prefix = host-manager.

주석 처리 후 톰캣을 재기동해보면, manager와 host-manager 로그는 더 이상 생성되지 않는 것을 확인 할 수 있다.

ls -al /tomcat/logs/

🚀 3년 지난 tomcat 로그 삭제하기

1. 쉘 스크립트 파일 생성

위치 및 파일 이름은 어떻게 하든 상관이 없다.

나는 /tomcat 하위의 logs 폴더에 delete라는 이름으로 쉘파일을 생성 해 줄 것이다.

vi /tomcat/logs/delete.sh

그리고 아래처럼 작성해주면 된다.

*mtime 은 modification time으로 수정날짜를 의미한다.

*mtime은 까다로운 옵션이므로 사용하기 전에 사용법을 숙지하는것이 좋다.

#!/bin/bash

//수정날짜 기준 현재로부터 3년(1095일)이 지난 로그 중 이름이 catalina로 시작하는 모든 파일을 삭제
find /tomcat/logs/ -mtime +1095 -name catalina\* -exec rm {} \;
find /tomcat/logs/ -mtime +1095 -name localhost\* -exec rm {} \;
find /tomcat/logs/ -mtime +1095 -name manager\* -exec rm {} \;
find /tomcat/logs/ -mtime +1095 -name host-manager\* -exec rm {} \;

2. crontab 등록

crontab -e

위 명령어를 입력하면 작성 할 수 있는 파일이 열린다.

매일 새벽 1시에 쉘파일을 실행시킨다.

0 1 * * * /tomcat/logs/delete.sh
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/11   »
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
글 보관함