如何记录有关cookie的信息?


14

我想将cookie信息添加到我的Apache访问日志中,即:电子邮件,用户名(cookie由php文件而不是Apache创建)。

我可以添加一些log.conf文件类似于:\"%{cookieName}i\"

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

如果那行不通,我是否使用Cookie日志并将其与访问日志结合在一起?如何使用?

Answers:


22

有三种方法可以将cookie放入Apache日志中:

%{cookiename}C
这将匹配浏览器在请求中发送的命名cookie,但不匹配其他任何cookie。

%{Cookie}i
这将记录请求中发送到服务器的整个Cookie:标头。如果设置了许多cookie或其中任何cookie具有大量数据,这可能会非常广泛。

%{Set-Cookie}o
这将与服务器在响应中发送的整个Set-Cookie:标头匹配。

请注意,“ cookiename”应替换为您要记录的cookie的名称,而其他两种方法应完全按照所写的方式放置在CustomLog指令中。这两个分别是请求和响应中的匹配标头。它们可用于匹配任何标头,而不仅仅是Cookie标头。


8

在您的vhost配置中尝试以下操作:

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
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.