我如何logging有关cookies的信息?

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

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

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

如果这不起作用,我使用cookie日志并将其与访问日志结合起来,以及如何?

有三种方法可以将Cookie存入Apache日志中:

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

%{Cookie}i
这将在请求中logging发送到服务器的整个Cookie:头。 如果设置了许多cookie,或者任何cookie有大量的数据,这可能是相当广泛的。

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

请注意,“cookiename”应该replace为您要logging的cookie的名称,而其他两种方法应完全按照书面放置在您的CustomLog指令中。 这两个分别是请求和响应中的匹配头。 它们可以用来匹配任何头文件,而不仅仅是cookie头文件。

在你的虚拟主机configuration中试试这个:

 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"