매뉴얼웍스는 아파치 톰캣을 사용합니다. 리눅스 환경에서 catalina.out
로그 파일을 logrotate를 통해 일자별로 나눠 저장하는 방법을 설명합니다. 이 설정은 매뉴얼웍스를 재시작하지 않고도 적용할 수 있습니다.
logrotate 설정 파일 만들기
다음 명령어를 입력합니다.
sudo vi /etc/logrotate.d/3rabbitz
관리 권한이 필요합니다(sudo
사용).
설정 내용 작성하기
앞에서 만든 파일에 다음 내용을 입력합니다.
/3rabbitz/logs/catalina.out { daily rotate 14 missingok notifempty compress copytruncate dateext dateformat -%Y-%m-%d }
첫 줄은 catalina.out
로그 파일의 실제 위치로 바꿔줍니다(예: /home/rabbitz/app-1-0/logs/catalina.out
).
필요한 옵션을 추가 또는 삭제합니다.
logrotate
주요 옵션
옵션 | 설명 | 예시 |
---|---|---|
daily | 매일 로그 회전 | daily |
weekly | 매주 회전 | weekly |
monthly | 매월 회전 | monthly |
rotate N | 회전 파일을 N개까지 보관 | rotate 7 → 7개까지 유지 |
compress | 회전된 로그 파일을 gzip으로 압축 | compress → .gz로 저장 |
delaycompress | 첫 번째 회전 로그는 압축하지 않음(2번째부터 압축) | delaycompress |
missingok | 로그 파일 없어도 에러 없이 무시 | missingok |
notifempty | 로그 파일이 비어 있으면 회전하지 않음 | notifempty |
copytruncate | 기존 로그 파일 유지하면서 내용만 잘라냄(프로세스를 재시작하지 않아도 됨) | copytruncate |
dateext | 회전된 로그 파일 이름에 날짜를 추가 | dateext → log-2025-07-08.gz |
dateformat | 날짜 형식 지정(기본: -%Y%m%d) | dateformat -%Y-%m-%d |
create MODE OWNER GROUP | 새 로그 파일을 생성할 때 권한 지정 | create 644 tomcat tomcat |
prerotate / postrotate | 회전 전후에 명령 실행 | postrotatesystemctl reload nginxendscript |
size N | 로그 파일이 N 이상일 때 회전 (단위: M/K/G) | size 10M |
maxage N | N일 이상 된 로그만 회전 | maxage 30 |
daily, weekly, monthly
등의 옵션에 따라 파일이 바뀌는 시간을 확인하려면 다음 명령어를 실행합니다.
cat /etc/crontab
리눅스 환경에서는 logrotate가 cron
또는 systemd timer
를 통해 자동 실행됩니다.
주기 | 항목 | 기본 값 |
---|---|---|
매일 | /etc/cron.daily | 매일 오전 6시 25분 |
매주 | /etc/cron.weekly | 매주 일요일 오전 6시 47분 |
매월 | /etc/cron.monthly | 매월 1일 오전 6시 52분 |
따라서 daily 옵션을 사용하면 매일 오전 25분에 로그 파일이 바뀝니다.