비슷한 질문이 이미 에 요청되었습니다.스택 오버플로 하지만 도움이 되는 답변이 제공되지 않았으며 여기에 더 적합하다고 생각합니다.
첫 번째 응답 시간의 마이크로초 또는 밀리초를 기록해야 합니다. Apache 2.2 문서에 제공된 형식을 따랐습니다.http://httpd.apache.org/docs/2.2/mod/mod_log_config.html(저는 Apache 2.2.3을 사용하고 있습니다.) 하지만 작동하지 않습니다. /etc/httpd/conf/httpd.conf의 로그 형식을 다음으로 변경했습니다.
LogFormat "%h %l %u %t %{usec_frac}t \"%r\" %>s %b %D" test
내가 얻는 결과는 다음과 같습니다.
IPaddress - - [10/Oct/2015:19:47:46 +0200] usec_frac "GET /w/images/thumb/f/fa/Wikiquote-logo.svg/35px-Wikiquote-logo.svg.png HTTP/1.1" 200 1931 86
따라서 usec_frac
해결되지 않았지만 문서에 %{format}t
. 저는 CentOS 릴리스 5.8(최종)을 사용하고 있으며 vi로 httpd.conf를 편집했습니다. 여기서 무엇이 문제가 될 수 있습니까?
답변1
링크한 공식 문서에 적힌 대로:
%{UNIT}T
요청을 처리하는 데 걸린 시간(UNIT에서 제공한 시간 단위)입니다. 유효한 단위는 ms(밀리초), us(마이크로초), s(초)입니다. s를 사용하면 형식 없이 %T와 동일한 결과가 제공됩니다. 우리를 사용하면 %D와 같은 결과가 나옵니다. %T를 단위와 결합하는 것은 2.2.30 이상에서 가능합니다.
답변2
Apache 2.2.3에서 발생한 문제를 어떻게 해결해야 할지 모르겠습니다만...
다른 방법이 효과가 없으면 다음을 살펴보세요(이것이 얼마나 중요한지에 따라 다름).
- Apache가 예상대로 작동하지 않고 버그일 수 있으므로 최신 버전의 Apache를 다운로드하여 컴파일하십시오. 아마도 효과가 있을 것입니다. 시도해 보는 것도 나쁘지 않을 것입니다
- 그래도 작동하지 않으면 코드를 편집하여 원하는 대로 작동하게 만드세요.
방금 2.4.10에서 테스트했는데 작동합니다.
127.0.0.1 - - [11/Oct/2015:16:37:50 -0400] 156545 "GET /cgi-bin/test.cgi HTTP/1.1" 200 175 1206218