Вы можете создать собственный LogFormat, содержащий заголовки :
% {Foobar} i: содержимое строки (строк) заголовка Foobar: в запросе, отправленном на сервер. На это влияют изменения, сделанные другими модулями (например, mod_headers). Если вас интересует, каким был заголовок запроса до того момента, когда большинство модулей его изменили бы, используйте mod_setenvif, чтобы скопировать заголовок во внутреннюю переменную среды и зарегистрировать это значение с помощью% {VARNAME} e, описанного выше.
Затем повторно используйте этот LogFormat в своей директиве AccessLog
LogFormat "%v %h %l %u %t \"%r\" %>s %b %{MySpecialHeader}i " my_special_format
CustomLog logs/access_log_with_details my_special_format
Или даже только в одной строке:
CustomLog logs/access_log_with_details "%v %h %l %u %t \"%r\" %>s %b %{MySpecialHeader}i"
UPDATE :
Примечание о SetEnvIf:
Эта часть предназначена для хранения значение заголовка в начале любой внутренней перезаписи, а затем, вместо использования синтаксиса % {FOO} i
для извлечения заголовка в конце процесса вы должны использовать % {MyEnvVar} e
для регистрации значения, зарезервированного в начале, это синтаксис для регистрации переменной среды.
Итак, заканчивается примерно так:
SetEnvIf MySpecialHeader "(.*)" BACKUPHEADER=$1
(... stuff and things ...)
CustomLog logs/access_log_with_details "init: %{BACKUPHEADER}e final: %{MySpecialHeader}i "
Вы также можете сделать это с помощью mod_security:
http://static.askapache.com/httpd/mod_security/doc/modsecurity-manual.html#N107EE
LogFormat "% h% l% u% t \ "% r \"%> s% {mod_security-body} n