apacheのdefaultのlogformatを少しだけいい感じにカスタマイズする
一部でLTSVが流行っていたりしますが、いまはそれは考えません。
- apacheのdefualt のcombined
LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined
- 少しだけいい感じにしたformat
LogFormat "%a %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\" %D" combined
変更1 %hを%aに変更
- %h リモートホスト
- %a リモートアドレス
apacheを少しでも高速化させるために、ログ吐くときにIPを逆引きしないようにHostnameLookups Off と設定していたとしても、httpd.confやhtaccessなどで
allow from example.com
というようなドメイン名での許可設定を入れていると、ログにhostnameが記録される。
で、よくよく考えたらこれはcombinedのlogformatが%hになっているからなので、そもそもこれを%a にしたらいいではないか、と思った。
変更2 %Dを追加
- %D リクエストを処理するのにかかった時間、マイクロ秒単位
レスポンス遅かったかどうかを調べたいときがあるので追加しておく。
おまけ nginx
nginxは$request_time を追加するとミリ秒単位でリクエスト処理時間が記録される
log_format combined '$remote_addr - $remote_user [$time_local] ' '"$request" $status $body_bytes_sent ' '"$http_referer" "$http_user_agent" $request_time';