Apache 2.2에서 사용자 정의 오류 로그를 작성할 수 있습니까? 이름을 붙여서 작성한 프로그램에

내 ErrorLog에 가상 호스트 이름을 붙여서 작성한 프로그램에 파이프하고 싶습니다.

액세스 로그에서와 같이 사용자 정의 오류 로그 형식을 쓸 수 있습니까?



답변

배관에 대해서는 ErrorLog 지시문 및 Piped Logs 공식 매뉴얼 항목을 참조하십시오 .

사용자 정의 오류 로그 형식을 얻는 것이 더 어렵습니다. 액세스 로그를 쉽게 사용자 정의 할 수 LogFormat있지만 오류 로그 형식을 수정하기 위해 내장 된 것이 없습니다. 나는 건너 않은 CGI :: 잉어 오류 로그에 출력하는 Perl 모듈이다. 마지막으로,이 기능이 얼마나 나쁜지에 따라 Apache 소스 코드를 직접 수정해야합니다.


답변

Apache 2.2에서는 error_log 형식을 쉽게 변경할 수 없습니다 ( http://httpd.apache.org/docs/2.2/logs.html#errorlog 참조) .

Apache 2.4가이 지원을 추가합니다. http://httpd.apache.org/docs/2.4/logs.html#errorlog를 참조 하십시오 .


답변

Apache 2.4에서는 ErrorLogFormat지시문을 사용할 수 있습니다 .

통사론: ErrorLogFormat [connection|request] format

간단한 예

ErrorLogFormat "[%t] [%l] [pid %P] %F: %E: [client %a] %M"

예 (스레딩 된 MPM의 기본 형식)

ErrorLogFormat "[%{u}t] [%-m:%l] [pid %P:tid %T] %7F: %E: [client\ %a] %M% ,\ referer\ %{Referer}i"

예 (2.2.x 형식과 유사)

ErrorLogFormat "[%t] [%l] %7F: %E: [client\ %a] %M% ,\ referer\ %{Referer}i"

요청 / 연결 로그 ID가있는 고급 예

ErrorLogFormat "[%{uc}t] [%-m:%-l] [R:%L] [C:%{C}L] %7F: %E: %M"
ErrorLogFormat request "[%{uc}t] [R:%L] Request %k on C:%{c}L pid:%P tid:%T"
ErrorLogFormat request "[%{uc}t] [R:%L] UA:'%+{User-Agent}i'"
ErrorLogFormat request "[%{uc}t] [R:%L] Referer:'%+{Referer}i'"
ErrorLogFormat connection "[%{uc}t] [C:%{c}L] local\ %a remote\ %A"

출처 : ErrorLogFormat 지시어