web-dev-qa-db-ja.com

Apache 2.2でカスタムエラーログを作成することは可能ですか?

ErrorLogにvhost名を付加し、それを自分が書いたプログラムにパイプしたいのですが。

アクセスログのようにカスタムエラーログフォーマットを書き込むことは可能ですか?

11
JohnT

パイプについては、 ErrorLog ディレクティブおよび Piped Logs 公式マニュアルエントリを参照してください。

カスタムエラーログ形式を取得するのはより困難です。アクセスログはLogFormatを使用して簡単にカスタマイズできますが、エラーログの形式を変更するためのビルトインはありません。 CGI :: Carp はエラーログに出力するためのPerlモジュールです。最後に、この機能がいかにひどいものにしたいかに応じて、Apacheソースコードを常に直接変更します。

7
uesp

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 を参照してください。

7
Yishai

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ディレクティブ

6
null

あなたはおそらく mod_log_debug を探しています。

1