home ホーム search 検索 -  login ログイン  | reload edit datainfo version cmd icon diff delete  | help ヘルプ

技術/Apache/Cookieログ(1) (v2)

技術/Apache/Cookieログ(1) (v2)

技術 / Apache / Cookieログ(1) (v2)
id: 143 所有者: msakamoto-sf    作成日: 2009-01-05 12:50:29
カテゴリ: Apache 

(Apache 2.0, WindowsXP)

ApacheのログでCookieを出力したい場合は、mod_log_configの機能として

%{Cookie名}C

というフォーマット文字列が使える。

クライアントが

Cookie: cookie1=123, cookie2=456

というCookieヘッダーを送ってきたら、

LogFormat "... %{cookie1}C ..." xxxx

というLogFormatを使えば "123" がログに記録される。
該当するCookie名が送られてこなければ、単に "-" として記録される。

LogFormat "%{sesstest}C,%t,%h,%>s,%D,%m,%U%q" cookielog

とかすると

9fe78323861e33bc4cac7a2142655d72,[05/Jan/2009:11:00:53 +0900], \
127.0.0.1,200,31250,GET,/sess/test1.php?a=b

という感じになり、CSVとしてExcelとかに読み込めばソートやフィルタがかけやすくて良いかも。("\"で折り返してます)

注意すべきは、あくまでもクライアントが送信したCookieヘッダーが記録されるため、Cookieをクリアしたクライアント乃至は初めてアクセスするクライアントについては "-" として出力されてしまう。
サーバーが送出した "Set-Cookie" までは取り出してくれない。

ちなみに
・「第13回 Apacheのログを活用しよう」
http://www.atmarkit.co.jp/flinux/rensai/apache13/apache13b.html
で紹介されている mod_usertrack は、静的コンテンツメインのサイトの場合にも「Apache側で」ユーザ追跡に使えるCookieを送信してしまおうというモジュール。
なので、コンテンツのほとんどがWebアプリの場合(CMSやSNSなど)は、不要かもしれない。CMSやSNSの基盤側で常にsession cookieをチェックしていたりするのであれば。(んー、でも、Set-Cookieされていない「未ログイン」ユーザーというのがありえる場合は、ユーザ追跡用のCookieを別立てでmod_usertrackで仕込んでおいたほうが良いかも・・・。)


プレーンテキスト形式でダウンロード
現在のバージョン : 2
更新者: msakamoto-sf
更新日: 2009-02-08 21:29:50
md5:5446f0b719543aea85be8030afe6a8c5
sha1:0856723c0e156f4e381198a422b535540e976be4
コメント
コメントを投稿するにはログインして下さい。