티스토리 뷰

Tomcat

[Tomcat] Access log 설정 및 확인하기

얀타호수 2023. 4. 14. 09:18

안녕하세요. 

오늘은 톰캣의 접근 로그에 대해 알아보겠습니다.

 

접근 로그(Access Log)는 사용자가 서버에 정보를 요청(웹사이트 방문 등)을 했을 때 해당 정보를 기록하는 유용한 기록 파일입니다. 사용자의 IP, 접근 시간, 접근 URL등의 정보가 모두 기록되므로 서버 운영에 필수적인 파일이라고 할 수 있습니다.

 

일반적으로 Access Log가 위치하는 경로는 tomcat의 home 디렉토리에 logs/ 에 위치하게 되는데요.

 

아무런 설정을 하지 않는다면 localhost_access_log.[오늘날짜].txt 로 로그가 기록됩니다.

 

이 Access Log 파일명의 양식은 conf/server.xml 파일에서 설정할 수 있습니다.

<Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
       prefix="localhost_access_log" suffix=".txt"
       pattern="%h %l %u %t &quot;%r&quot; %s %b" />

기본적인 포맷으로 포맷의 의미는 다음과 같습니다.

directory Access Log 가 생성되는 경로, tomcat home으로부터의 경로
prefix Access Log 의 접두사
suffix Access Log 의 접미사
pattern Access Log 의 포맷

server.xml에 설정된 패턴을 살펴보자면

192.168.10.134 - - [14/Apr/2023:09:15:58 +0900] "GET URL?Parameter=value HTTP/1.1" 200 910
%a
원격 IP 주소
%r
요청의 첫번째 줄 (메소드와 요청 URI)
%A
로컬 IP 주소
%s
HTTP 상태 코드
%b
HTTP 헤더를 제외한 전송 크기, 없다면 ‘-’
%S
사용자 세션 ID
%B
HTTP 헤더를 제외한 전송 크기
%t
날짜와 시간
%h
원격 호스트 이름
%u
인증된 원격 사용자, 아니라면 ‘-’
%H
요청 프로토콜
%U
요청된 URL 경로
%l
identd의 원격 사용자 이름 (항상 ‘-’을 반환)
%v
로컬 서버 이름
%m
요청 메소드 (GET, POST 등)
%D
요청이 처리되는데 소요된 시간 (ms)
%p
로컬 포트
%T
요청이 처리되는데 소요된 시간 (s)
%q
쿼리 문자열 (앞에 ‘?’ 가 붙는다)
%I
현재 요청 스레드의 이름

더 많은 정보는 톰캣 오피셜 문서에서 확인할 수 있습니다.

http://tomcat.apache.org/tomcat-9.0-doc/logging.html#Access_logging