마이크로초를 포함하도록 Apache 2.2 로그 타임스탬프의 정밀도를 높입니다.

마이크로초를 포함하도록 Apache 2.2 로그 타임스탬프의 정밀도를 높입니다.

비슷한 질문이 이미 에 요청되었습니다.스택 오버플로 하지만 도움이 되는 답변이 제공되지 않았으며 여기에 더 적합하다고 생각합니다.

첫 번째 응답 시간의 마이크로초 또는 밀리초를 기록해야 합니다. 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에서 발생한 문제를 어떻게 해결해야 할지 모르겠습니다만...

다른 방법이 효과가 없으면 다음을 살펴보세요(이것이 얼마나 중요한지에 따라 다름).

  1. Apache가 예상대로 작동하지 않고 버그일 수 있으므로 최신 버전의 Apache를 다운로드하여 컴파일하십시오. 아마도 효과가 있을 것입니다. 시도해 보는 것도 나쁘지 않을 것입니다
  2. 그래도 작동하지 않으면 코드를 편집하여 원하는 대로 작동하게 만드세요.

방금 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

관련 정보