Я хотел бы добавить информацию о файлах cookie в свои журналы доступа Apache, например: адрес электронной почты, имя пользователя (файл cookie создается файлом php, а не Apache).
Могу я добавить что-нибудь к log.conf
файл похож на: \"%{cookieName}i\"
к
LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined
Если это не сработает, могу ли я использовать журнал cookie и объединить его с журналом доступа и как?
Есть три способа сохранить файлы cookie в журналах Apache:
%{cookiename}C
Это будет соответствовать названному cookie, отправленному в запросе браузером, но не любым другим файлам cookie.
%{Cookie}i
Это будет регистрировать весь заголовок Cookie:, отправленный на сервер в запросе. Это может быть довольно обширным, если установлено много файлов cookie или если какой-либо из файлов cookie содержит много данных.
%{Set-Cookie}o
Это будет соответствовать всему заголовку Set-Cookie:, отправляемому сервером в ответе.
Обратите внимание, что "cookiename" следует заменить на имя файла cookie, который вы хотите регистрировать, тогда как два других метода должны быть помещены в вашу директиву CustomLog точно так, как написано. Эти два совпадают заголовки в запросе и ответе соответственно. Их можно использовать для соответствия любому заголовку, а не только заголовкам файлов cookie.
попробуйте это в своей конфигурации 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"