⚙️ Tomcat Logging이란?

정의

Tomcat Logging은 Tomcat에서 발생하는 실행 로그와 접근 로그를 확인하고 관리하는 방법이다. 장애 분석, 요청 추적, 운영 점검에 필수적이다.

🧱 주요 로그 파일

catalina.out

  • Tomcat 실행 중 출력되는 기본 로그다.
  • 시작/종료, 예외, 시스템 출력이 모이기 쉽다.

catalina.yyyy-mm-dd.log

  • 날짜별로 분리되는 Tomcat 로그다.
  • java.util.logging 기반 설정에서 자주 사용된다.

localhost.log

  • 로컬 호스트 기준 애플리케이션 관련 로그다.

manager.log

  • Tomcat Manager 관련 로그다.

host-manager.log

  • Host Manager 관련 로그다.

포인트

운영 중 문제를 볼 때는 catalina.out만 보지 말고 다른 로그 파일도 함께 봐야 한다.

🔎 확인해야 할 포인트

  • 서버가 안 뜰 때 catalina.out을 확인한다.
  • 웹 애플리케이션 오류는 localhost.log를 함께 본다.
  • 접근 이력은 Access Log를 확인한다.
  • 특정 날짜의 이슈는 날짜별 로그 파일을 확인한다.

🛠️ 경로 설정

<Valve className="org.apache.catalina.valves.AccessLogValve"
       directory="logs"
       prefix="localhost_access_log"
       suffix=".txt" />

🔄 catalina.out 관리

  • catalina.out은 계속 커질 수 있다.
  • 주기적으로 분리하거나 비우는 정책이 필요하다.
  • Log Rolling 또는 logrotate와 함께 관리할 수 있다.

Crontab을 활용한 로그 분리 예시

cp /Tomcat/logs/catalina.out /Tomcat/logs/catalina.out.$(date +%y-%m-%d).log
cat /dev/null > /Tomcat/logs/catalina.out
find /Tomcat/logs -mtime +90 -name catalina* -exec rm {} \;

🧩 로그 설정 변경

catalina.yyyy-mm-dd.log

1catalina.org.apache.juli.AsyncFileHandler.level = FINE
1catalina.org.apache.juli.AsyncFileHandler.directory = ${catalina.base}/logs
1catalina.org.apache.juli.AsyncFileHandler.prefix = catalina.
1catalina.org.apache.juli.AsyncFileHandler.encoding = UTF-8

localhost.log

2localhost.org.apache.juli.AsyncFileHandler.level = FINE
2localhost.org.apache.juli.AsyncFileHandler.directory = ${catalina.base}/logs
2localhost.org.apache.juli.AsyncFileHandler.prefix = localhost.
2localhost.org.apache.juli.AsyncFileHandler.encoding = UTF-8

⚠️ 주의할 점

  • 로그 파일이 너무 커지면 디스크를 빠르게 사용할 수 있다.
  • 운영 환경에서는 로그와 에러 로그를 구분해야 한다.
  • 경로와 권한을 잘못 설정하면 로그가 남지 않을 수 있다.
  • Tomcat 재시작 시 로그 파일 순환 정책이 영향을 받을 수 있다.

[!important] 정리 Tomcat Logging은 운영 상태와 오류 원인을 찾기 위한 핵심 수단이다. catalina.out, localhost.log, Access Log를 함께 봐야 한다.


연결문서

댓글남기기