쿠키에 대한 정보를 어떻게 기록합니까?


14

쿠키 정보를 Apache 액세스 로그에 추가하고 싶습니다 (예 : 이메일, 사용자 이름 (쿠키는 Apache가 아니라 php 파일로 생성됨)).

나는 뭔가를 추가 할 수 log.conf에 유사한 파일 : \"%{cookieName}i\"에

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

그래도 작동하지 않으면 쿠키 로그를 사용하여 액세스 로그와 결합하는 방법은 무엇입니까?

답변:


22

쿠키를 Apache 로그로 가져 오는 방법에는 세 가지가 있습니다.

%{cookiename}C
이는 브라우저가 요청에 의해 보낸 명명 된 쿠키와 일치하지만 다른 쿠키는 일치하지 않습니다.

%{Cookie}i
요청시 서버로 전송 된 전체 Cookie : 헤더를 기록합니다. 많은 쿠키가 설정되어 있거나 쿠키 중 하나에 많은 데이터가있는 경우 이는 상당히 광범위 할 수 있습니다.

%{Set-Cookie}o
응답에서 서버가 보낸 전체 Set-Cookie : 헤더와 일치합니다.

"cookiename"은 기록하려는 쿠키의 이름으로 바꾸어야하지만 다른 두 가지 방법은 작성된대로 CustomLog 지시문에 배치해야합니다. 이 두 가지는 요청과 응답에서 각각 일치하는 헤더입니다. 쿠키 헤더뿐만 아니라 모든 헤더와 일치하는 데 사용할 수 있습니다.


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
슈퍼 그것은 나를 위해 일했다. 정확한 쿠키 이름을 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.