Apacheのアクセスログに処理時間を出力する

WEBサイトへのリクエストがタイムアウトし、ブラウザがデータを受信できなくても、アクセスログ上は、HTTPのステータスコード200となります。Apacheは、ブラウザからの接続が切断されても、気にせずレスポンスを返して、ステータスコード200が記録されるようです。
これでは、レスポンス遅延が発生していても、アクセスログを見ただけではわからないため、Apacheアクセスログにレスポンスするまでにかかった時間を出力してみます。

LogFormatに「%D」を指定する

Apacheアクセスログの出力フォーマットの設定に「%D」を追記することで、リクエストを処理するのにかかった時間を、マイクロ秒単位で出力可能となります。
詳細は、mod_log_config - Apache HTTP サーバ バージョン 2.2 を参照してください。

http.confでの設定例
LogFormat "%h %l %u %t \"%r\" %>s %b %D" common
CustomLog logs/access_log common
ログ出力例(※見やすさのために改行を入れていますが、本来は1行です)
10.10.10.1 - - [23/Apr/2007:20:30:24 +0900]
"GET /Detail.do?cd=064895 HTTP/1.1" 200 15110 169979

導入にあたって

有用な情報ですので、ぜひ導入したいところですが、性能への影響がある可能性があるため、シビアに性能が求められる場合は、検証が必要だと思います。