2013년 10월 6일

Apache 로그 형식 지정하기


원본문서: http://httpd.apache.org/docs/2.2/ko/mod/mod_log_config.html

위 문서의 일부내용을 발췌하여 기재합니다.


로그 형식 지정하기

LogFormat과 CustomLog 지시어의 형식 아규먼트는 문자열이다. 이 문자열에 따라 요청을 로그파일에 기록한다. 문자열에는 로그파일에 그대로 복사되는 문자와 행바꿈과 탭을 나타내는 C의 "\n"과 "\t" 제어문자를 사용할 수 있다. 로그파일에 따옴표나 백슬래쉬를 쓰려면 앞에 반드시 백슬래쉬를 적어줘야 한다.
요청의 특징은 형식 문자열에 "%" 지시어를 사용하여 기록한다. 이 지시어는 로그파일에서 다음과 같이 변경된다.
형식 문자열설명
%%퍼센트 기호
%...a원격 IP-주소
%...A(서버) IP-주소
%...BHTTP 헤더를 제외한 전송 바이트수.
%...bHTTP 헤더를 제외한 전송 바이트수. CLF 형식과 같이 전송한 내용이 없는 경우 0 대신 '-'가 나온다.
%...{Foobar}C서버가 수신한 요청에서 Foobar 쿠키의 내용.
%...D요청을 처리하는데 걸린 시간 (마이크로초 단위).
%...{FOOBAR}e환경변수 FOOBAR의 내용
%...f파일명
%...h원격 호스트
%...H요청 프로토콜
%...{Foobar}i서버가 수신한 요청에서 Foobar: 헤더의 내용.
%...l(있다면 identd가 제공한) 원격 로그인명. mod_ident가 있고 IdentityCheck가 On이 아니면 빼기기호를 기록한다.
%...m요청 메써드
%...{Foobar}n다른 모듈이 기록한 Foobar 노트(note) 내용.
%...{Foobar}o응답의 Foobar: 헤더 내용.
%...p요청을 서비스하는 서버의 정규 포트
%...P요청을 서비스하는 자식의 프로세스 ID.
%...{format}P요청을 서비스하는 자식의 프로세스 ID 혹은 쓰레드 ID. format에는 pid와 tid가 가능하다.
%...q질의문자열 (질의문자열이 있다면 앞에 ?를 붙이고, 없다면 빈 문자열)
%...r요청의 첫번째 줄
%...s상태(status). 내부 리다이렉션된 요청의 경우 *원래* 요청의 상태이다. 최종 요청의 상태는 %...>s.
%...tcommon log format 시간 형식(표준 영어 형식)의 시간
%...{format}tstrftime(3) 형식 format의 시간. (지역시간일 수 있음)
%...T요청을 처리하는데 걸린 시간 (초 단위).
%...u원격 사용자 (auth가 제공하며, 상태(%s)가 401인 경우 이상한 값을 나올 수 있음)
%...U질의문자열을 제외한 요청 URL 경로.
%...v요청을 서비스한 서버의 정규 ServerName.
%...VUseCanonicalName 설정에 따른 서버명.
%...X응답을 마쳤을때 연결 상태.
X =응답을 마치기 전에 연결이 끊어졌다.
+ =응답을 보낸후에도 연결이 살아있다(keep alive).
- =응답을 보낸후 연결이 끊어졌다.
(아파치 1.3 후반 버전에서 이 지시어는 %...c였지만, 전통적인 ssl %...{var}c 문법과 겹쳐서 변경했다.)
%...I요청과 헤더를 포함한 수신 바이트수로 0일 수 없다. 이를 사용하려면 mod_logio가 필요하다.
%...O헤더를 포함한 송신 바이트수로 0일 수 없다. 이를 사용하려면 mod_logio가 필요하다.

댓글 없음:

댓글 쓰기