1. 개요
Apache access log의 요청 시간을 기본 형식보다 더 자세히 남기고 싶을 때가 있다. 예를 들어 짧은 시간에 여러 요청이 몰리는 상황을 분석하거나, 애플리케이션 로그와 access log를 대조할 때 초 단위만으로는 순서를 구분하기 어렵다.
이럴 때 LogFormat의 시간 포맷을 조정해 밀리세컨드 단위까지 기록할 수 있다.
2. 방법
2-1. 일반적인 common 로그
일반적인 common 로그 포맷은 다음과 같다.
LogFormat "%h %l %u %t \"%r\" %>s %b" common
여기서 %t는 기본 시간 형식으로 기록되며, 보통 초 단위까지만 확인할 수 있다.
2-2. 밀리세컨드 단위로 변경한 common 로그
시간 부분을 직접 포맷팅하고, %{msec_frac}t를 붙이면 밀리세컨드 단위의 소수부를 함께 남길 수 있다.
LogFormat "%h %l %u [%{%d/%b/%Y %T}t.%{msec_frac}t %{%z}t] \"%r\" %>s %b" common
예상되는 시간 출력 형태는 다음과 같다.
[01/Jan/2024 12:34:56.789 +0900]
설정을 변경한 뒤에는 Apache 설정 문법을 검사하고, 문제가 없으면 서비스를 다시 로드하거나 재시작해 적용한다. 이후 access log에 밀리세컨드가 포함되어 찍히는지 확인하면 된다.