読者です 読者をやめる 読者になる 読者になる

うまいぼうぶろぐ

linuxとhttpdとperlのメモ

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に変更

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';