Cookieに関する情報を記録するにはどうすればよいですか?


14

私は、ApacheアクセスログにCookie情報を追加したいと思います:メール、ユーザー名(CookieはApacheではなくphpファイルによって作成されます)。

私はに何かを追加することができますlog.confに似たファイル:\"%{cookieName}i\"

LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined

それがうまくいかない場合、クッキーログを使用してアクセスログとどのように組み合わせるのですか?

回答:


22

CookieをApacheログに取得する方法は3つあります。

%{cookiename}C
これは、ブラウザによってリクエストで送信された名前付きCookieと一致しますが、他のCookieとは一致しません。

%{Cookie}i
これにより、リクエストでサーバーに送信されたCookie:ヘッダー全体が記録されます。多くのCookieが設定されている場合、またはいずれかのCookieに大量のデータがある場合、これは非常に広範囲に及ぶ可能性があります。

%{Set-Cookie}o
これは、応答でサーバーによって送信されたSet-Cookie:ヘッダー全体と一致します。

「cookiename」は、ログに記録するcookieの名前に置き換える必要がありますが、他の2つのメソッドは、記述どおりにCustomLogディレクティブに配置する必要があります。これら2つは、それぞれリクエストとレスポンスの一致するヘッダーです。Cookieヘッダーだけでなく、任意のヘッダーと一致させるために使用できます。


8

あなたの仮想ホスト設定でこれを試してください:

LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\" \"%{Cookie}i\"" with_cookies
CustomLog /var/log/apache2/my-access.log with_cookies

私のために働いた。my-access.logの出力:

83.0.11.22 - - [02/Aug/2009:12:31:30 +0200] "GET /ct/ HTTP/1.1" 200 - "-" "Mozilla/5.0 (Windows; U; Windows NT 5.1; pl; rv:1.9.1.1) Gecko/20090715 Firefox/3.5.1" "c1=1; c2=2; PHPSESSID=6c4513f22852a235b8988da822f89d04"

1
それは私のために働いた。正確なCookie名をLogFormat "%h%l%u%t \"%r \ "%> s%b \"%{Referer} i \ "\"%{User-Agent} i \ "\"として追加できます。 %{cookieName} C \ "" with_cookies
Sunil Bhoi
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.