최초 작성일 : 2021-10-10 | 수정일 : 2021-10-15 | 조회수 : 504 |

Apache는 log_config_module을 사용하여 클라이언트의 요청을 원하는 형식으로 로그에 기록할 수 있습니다
아래 설정은 Apache 기본 로그 설정이다.
한줄씩 의미를 확인해 보겠습니다.
#1
#2 LogFormat '%h %l %u %t \'%r\' %>s %b \'%{Referer}i\' \'%{User-Agent}i\'' combined
#3 LogFormat '%h %l %u %t \'%r\' %>s %b' common
#4
#5 CustomLog 'logs/access_log' combined
#6
#1 #6 : IfModule 지서어는 서버에 log_config_module이 설치되어 있을 때만 섹션 안의 지시어들을 적용한다.
[root@linux-2 conf]# httpd -D DUMP_MODULES | grep log_config_module
log_config_module (shared)
#2 #3 : LogFormat 지시어는 말 그대로 로그의 형식을 지정한다.
어떤 형식으로 지정할지는 아래 표의 문자열을 참고하시면 된다.
끝에 combined는 정의한 LogFormat의 이름 입니다
형식 문자열 | 의미(설명) |
%h | 원격 호스트 |
%l | 원격 로그인명 |
%u | 원격 사용자 |
%t | 시간 |
%r | 요청의 첫번째 줄 |
%s | 상태 |
%b | HTTP 헤더를 제외한 전송 바이트수 |
%{헤더}i | 클라이언트 요청의 헤더 값 |
(추가 문자열에 대해서는 Apaceh 공식페이지에서 확인 하시면 됩니다)
https://httpd.apache.org/docs/2.4/ko/mod/mod_log_config.html#logformat
#5 : CustomLog 지시어로 로그 파일(이름 및 위치)과 형식을 지정한다.
그럼, 실제 서버에서 로그를 확인해 보겠습니다.
192.168.56.1 - - [30/May/2020:23:50:48 +0900] 'GET / HTTP/1.1' 200 14 '-' 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.61 Safari/537.36'
형식 문자열 | 값 |
%h | 192.168.56.1 |
%l | -(값없음) |
%u | -(값없음) |
%t | [30/May/2020:23:50:48 +0900] |
%r | GET / HTTP/1.1 |
%s | 200 |
%b | 14 |
%{referer}i | -(값없음) |
%{User-Agent}i | Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.61 Safari/537.36 |
Tags #Apache