<-
Apache > HTTP Server > Documentation > Version 2.0 > Modules

Apache Модуль mod_log_config

Description: заготовка леса запросов, сделанных к серверу
Status: основа
Module Identifier: log_config_module
Source File: mod_log_config.c

резюме

этот модуль предусматривает гибкую заготовку леса запросов клиента. Регистрации написаны в настраиваемом формате, и могут быть написаны непосредственно файлу, или внешней программе. Условная заготовка леса обеспечивается так, чтобы человек просил, может быть включен или исключен из регистраций, основанных на особенностях запроса.

три директивы обеспечиваются этим модулем: TransferLog создавать файл системного журнала, LogFormat установить таможенный формат, и CustomLog определять файл системного журнала и формат в одном шаге. TransferLog и CustomLog директивы могут использоваться многократные времена в каждом сервере, чтобы заставить каждый запрос быть зарегистрированным к многократным файлам.

директивы

темы

см. также

top

Custom Log Formats

аргумент формата LogFormat и CustomLog директивы - вереница. Эта вереница используется, чтобы регистрировать каждый запрос к файлу системного журнала. Это может содержать буквальные характеры, скопированные в файлы системного журнала и характеры контроля C-стиля "\n" и "\t", чтобы представить новые линии и счета. Буквальных кавычек и наклонных черт влево нужно избежать с наклонными чертами влево.

особенности самого запроса зарегистрированы, помещая " % "директивы в веренице формата, которые заменены в файле системного журнала ценностями следующим образом:

Format String описание
%% признак процента ( Apache 2.0.44 и позже )
%...a Отдаленный IP адрес
%...A Местный IP адрес
%...B размер ответа в байтах, исключая удары головой HTTP.
%...b размер ответа в байтах, исключая удары головой HTTP. В формате CLF, то есть. ' - 'а не 0, когда никакие байты не посылают.
%...{ Foobar }C содержание печенья Foobar в запросе, посланном серверу.
%...D время, потраченное, чтобы служить запросу, в микросекундах.
%...{ FOOBAR }e содержание переменной окружающей среды FOOBAR
%...f имя файла
%...h отдаленный хозяин
%...H протокол запроса
%...{ Foobar }i содержание Foobar : линия (и) удара головой в запросе, посланном серверу.
%...l отдаленный logname (от identd, если поставляется). Это не возвратит черту если IdentityCheck установлен On .
%...m метод запроса
%...{ Foobar }n содержание примечания Foobar от другого модуля.
%...{ Foobar }o содержание Foobar : линия (и) удара головой в ответе.
%...p канонический порт сервера, служащего запросу
%...P удостоверение личности процесса ребенка, который обслуживал запрос.
%...{ format }P удостоверение личности процесса или нить id ребенка, который обслуживал запрос. Действительные форматы pid и tid . ( Apache 2.0.46 и позже )
%...q вереница вопроса (предбывший на рассмотрении с a ? если вереница вопроса существует, иначе пустая вереница),
%...r первая линия запроса
%...s статус. Для запросов, которые были внутренне переадресованы, это - статус запроса *original*--- %...>s для последнего.
%...t время запрос было получено (стандартный английский формат)
%...{ format }t время, в форме, данной форматом, который должен быть в strftime(3) формат. (потенциально ограниченный)
%...T время, потраченное, чтобы служить запросу, в секундах.
%...u отдаленный пользователь (от автора; может быть поддельным если статус возвращения ( %s ) - 401),
%...U дорожка URL, которую требуют, не включая никакой вереницы вопроса.
%...v каноническое ServerName из сервера, служащего запросу.
%...V название сервера согласно UseCanonicalName урегулирование.
%...X статус связи, когда ответ закончен:
X = связь, прерванная перед законченным ответом.
+ = связь может быть поддержана после того, как ответ посылают.
- = связь будет закрыта после того, как ответ посылают.

(эта директива была %...c в последних версиях Apacheа 1.3, но это находилось в противоречии с историческим ssl %...{ var }c синтаксис.)

%...I полученные байты, включая запрос и удары головой, не могут быть нолем. Вы должны позволить mod_logio использовать это.
%...O посланные байты, включая удары головой, не могут быть нолем. Вы должны позволить mod_logio использовать это.

" ... "не может быть ничто вообще ( например. , "%h %u %r %s %b" ), или это может указать условия для включения пункта (который заставит это быть замененным "-", если условие не будет встречено). Формы условия - список кодексов статуса HTTP, которые могут или, возможно, не предшествовать "!". Таким образом, "%400 501 {Пользовательский агент} i" регистраций User-agent: на 400 ошибках и 501 ошибке (Плохо Запрос, Не Осуществленный) только; "%! 200 304 302 {Referer} я" регистрирую Referer: на всех запросах, которые сделали нет возвратить своего рода нормальный статус.

модификаторы "<" и ">" может использоваться для запросов, которые были внутренне переадресованы, чтобы выбрать, просят ли оригинал или финал (соответственно), нужно консультироваться. По умолчанию, % директивы %s, %U, %T, %D, и %r смотрят запрос оригинального, в то время как все другие смотрят на заключительный запрос. Так например, %>s может использоваться, чтобы сделать запись заключительного статуса запроса и %<u может использоваться, чтобы сделать запись заверенного пользователя оригинала на запросе, который внутренне переадресован к незаверенному ресурсу.

отметить, что в httpd 2.0 версии до 2.0.46, никакая возможность избежать не была выполнена на вереницах от %...r , %...i и %...o . это должно было главным образом выполнить требования Общего Формата Регистрации. Это подразумевало, что клиенты могли вставить характеры контроля в регистрацию, таким образом Вы должны были быть весьма осторожны, имея дело с сырыми файлами системного журнала.

для соображений безопасности, начинающихся с 2.0.46, при использовании непригодных для печатания и других специальных характеров избегают главным образом \x hh последовательности, где гд поддерживает шестнадцатеричное представление сырого байта. Исключения из этого правила " и \ которых избегают, предожидая наклонную черту влево, и все whitespace характеры, которые написаны в их примечании C-стиля ( \n , \t и т.д).

отметить это в httpd 2.0, в отличие от этого 1.3, %b и %B вереницы формата не представляют число байтов, посланных клиенту, но просто размер в байтах ответа HTTP (который будет отличаться, например, если связь будет прервана, или если SSL используется). %O формат, обеспеченный mod_logio будет регистрировать фактическое число байтов, посланных по сети.

некоторые обычно используемые вереницы формата регистрации:

Общий Формат Регистрации (CLF)
"%h %l %u %t \"%r\" %>s %b"
Общий Формат Регистрации с Действительным Хозяином
"%v %h %l %u %t \"%r\" %>s %b"
NCSA расширил/объединил формат регистрации
"%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-agent}i\""
Referer регистрируют формат
"%{Referer}i -> %U"
агент (Браузер) формат регистрации
"%{User-agent}i"

отметить что каноническое ServerName и Listen из сервера, служащего запросу используются для %v и %p соответственно. Это случается независимо от UseCanonicalName урегулирование, потому что иначе регистрируют программы анализа, должно было бы дублировать весь vhost соответствие алгоритму, чтобы решить, какой хозяин действительно служил запросу.

top

Security Considerations

см. security tips документ для деталей на том, почему ваша безопасность могла быть поставлена под угрозу, если справочник, где logfiles сохранены, перезаписываем любым кроме пользователя, который начинает сервер.

top

BufferedLogs Directive

Description: буферные записи регистрации в памяти перед письмом диску
Syntax: BufferedLogs On|Off
Default: BufferedLogs Off
Context: сервер config
Status: основа
Module: mod_log_config
Compatibility: доступный в версиях 2.0.41 и позже.

BufferedLogs направляющие причины mod_log_config хранить несколько записей регистрации в памяти и писать им вместе к диску, вместо того, чтобы писать им после каждого запроса. На некоторых системах, это может привести к более эффективному дисковому доступу и следовательно более высокая работа. Это может быть установлено только однажды для всего сервера; это не может формироваться в действительного хозяина.

эта директива экспериментальна и должна использоваться с предостережением.
top

CookieLog Directive

Description: имя файла наборов для заготовки леса печенья
Syntax: CookieLog filename
Context: сервер config, действительный хозяин
Status: основа
Module: mod_log_config
Compatibility: эта директива осуждается.

CookieLog директива устанавливает имя файла для того, чтобы регистрировать из печенья. Имя файла - относительно ServerRoot . эта директива включена только для совместимости с mod_cookies , и осуждается.

top

CustomLog Directive

Description: имя файла наборов и формат файла системного журнала
Syntax: CustomLog file | pipe format | nickname [env=[!] environment-variable ]
Context: сервер config, действительный хозяин
Status: основа
Module: mod_log_config

CustomLog директива используется, чтобы регистрировать запросы к серверу. Формат регистрации определен, и заготовка леса может произвольно быть сделана условной на особенностях запроса, используя переменные окружающей среды.

первый аргумент, который определяет местоположение, которому будут написаны регистрации, может взять один из следующих двух типов ценностей:

файл
имя файла, относительно ServerRoot .
труба
характер трубы " | ", сопровождаемый дорожкой к программе, чтобы получить информацию регистрации относительно ее стандартного входа.

безопасность:

если программа используется, то этим будут управлять как пользователь, который начался httpd . это будет корнем, если сервер был начат корнем; убедитесь, что программа безопасна.

отметить

входя в дорожку файла в платформы не-Unix, забота должна быть взята, чтобы удостовериться, что только отправляют, хлестал, используются даже при том, что платформа может позволить использование обратных [правых] косых черт. Вообще это - хорошая идея, чтобы всегда использовать вперед разрезы всюду по файлам конфигурации.

второй аргумент определяет то, что будет написано файлу системного журнала. Это может определить любой a прозвище определенный предыдущим LogFormat директива, или это может быть явное формат натянуть как описано в log formats секция.

например, следующие два набора директив имеют точно тот же самый эффект:

# CustomLog with format nickname
LogFormat "%h %l %u %t \"%r\" %>s %b" common
CustomLog logs/access_log common

# CustomLog with explicit format string
CustomLog logs/access_log "%h %l %u %t \"%r\" %>s %b"

третий аргумент является дополнительным и управляет, действительно ли регистрировать специфический запрос, основанный на присутствии или отсутствии специфической переменной в окружающей среде сервера. Если указанное environment variable установлен для запроса (или не установлен, в случае ' env=! name 'пункт), тогда запрос будет зарегистрирован.

переменные окружающей среды могут быть установлены на в-запрос основании, используя mod_setenvif и/или mod_rewrite модули. Например, если Вы хотите сделать запись запросов обо всех изображениях ДЖИФА на вашем сервере в отдельном logfile, но не в вашей главной регистрации, Вы можете использовать:

SetEnvIf Request_URI \.gif$ gif-image
CustomLog gif-requests.log common env=gif-image
CustomLog nongif-requests.log common env=!gif-image

или, чтобы воспроизвести поведение старой директивы RefererIgnore, Вы могли бы использовать следующее:

SetEnvIf Referer example\.com localreferer
CustomLog referer.log referer env=!localreferer

top

LogFormat Directive

Description: описывает формат для использования в файле системного журнала
Syntax: LogFormat format | nickname [ nickname ]
Default: LogFormat "%h %l %u %t \"%r\" %>s %b"
Context: сервер config, действительный хозяин
Status: основа
Module: mod_log_config

эта директива определяет формат файла системного журнала доступа.

LogFormat директива может принять одну из двух форм. В первой форме, где только один аргумент определен, эта директива устанавливает формат регистрации, который будет использоваться регистрациями, определенными в последующем TransferLog директивы. Единственный аргумент может определить явное формат как обсуждено в custom log formats секция выше. Альтернативно, это может использовать a прозвище обратиться к формату регистрации, определенному в предыдущем LogFormat директива как описано ниже.

вторая форма LogFormat директива связывает явное формат с a прозвище . это прозвище может тогда использоваться в последующем LogFormat или CustomLog директивы вместо того, чтобы повторять всю вереницу формата. A LogFormat директива, которая определяет прозвище не делает ничего иного - то есть, это только определяет прозвище, это фактически не применяет формат и делает это неплатежом. Поэтому, это не будет затрагивать последующий TransferLog директивы. Кроме того, LogFormat не может использовать одно прозвище, чтобы определить другое прозвище. Отметьте, что прозвище не должно содержать признаки процента ( % ).

Example

LogFormat "%v %h %l %u %t \"%r\" %>s %b" vhost_common

top

TransferLog Directive

Description: определить местоположение файла системного журнала
Syntax: TransferLog file | pipe
Context: сервер config, действительный хозяин
Status: основа
Module: mod_log_config

эта директива имеет точно те же самые аргументы и эффект как CustomLog директива, за исключением того, что это не позволяет формату регистрации быть определенным явно или для условной заготовки леса запросов. Вместо этого формат регистрации определен последний раз указанный LogFormat директива, которая не определяет прозвище. Общий Формат Регистрации используется, если никакой другой формат не был определен.

Example

LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-agent}i\""
TransferLog logs/access_log