Apache Версия 2.0 Сервера HTTP
Description: | заготовка леса запросов, сделанных к серверу |
---|---|
Status: | основа |
Module Identifier: | log_config_module |
Source File: | mod_log_config.c |
этот модуль предусматривает гибкую заготовку леса запросов клиента. Регистрации написаны в настраиваемом формате, и могут быть написаны непосредственно файлу, или внешней программе. Условная заготовка леса обеспечивается так, чтобы человек просил, может быть включен или исключен из регистраций, основанных на особенностях запроса.
три директивы обеспечиваются этим модулем:
TransferLog
создавать файл системного журнала,
LogFormat
установить таможенный формат, и
CustomLog
определять файл системного журнала и формат в одном шаге.
TransferLog
и
CustomLog
директивы могут использоваться многократные времена в каждом сервере, чтобы заставить каждый запрос быть зарегистрированным к многократным файлам.
аргумент формата
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
|
статус связи, когда ответ закончен:
(эта директива была
|
||||||
%...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
будет регистрировать фактическое число байтов, посланных по сети.
некоторые обычно используемые вереницы формата регистрации:
"%h %l %u %t \"%r\" %>s %b"
"%v %h %l %u %t \"%r\" %>s %b"
"%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-agent}i\""
"%{Referer}i -> %U"
"%{User-agent}i"
отметить что каноническое
ServerName
и
Listen
из сервера, служащего запросу используются для
%v
и
%p
соответственно. Это случается независимо от
UseCanonicalName
урегулирование, потому что иначе регистрируют программы анализа, должно было бы дублировать весь vhost соответствие алгоритму, чтобы решить, какой хозяин действительно служил запросу.
см. security tips документ для деталей на том, почему ваша безопасность могла быть поставлена под угрозу, если справочник, где logfiles сохранены, перезаписываем любым кроме пользователя, который начинает сервер.
Description: | буферные записи регистрации в памяти перед письмом диску |
---|---|
Syntax: |
BufferedLogs On|Off
|
Default: |
BufferedLogs Off
|
Context: | сервер config |
Status: | основа |
Module: | mod_log_config |
Compatibility: | доступный в версиях 2.0.41 и позже. |
BufferedLogs
направляющие причины
mod_log_config
хранить несколько записей регистрации в памяти и писать им вместе к диску, вместо того, чтобы писать им после каждого запроса. На некоторых системах, это может привести к более эффективному дисковому доступу и следовательно более высокая работа. Это может быть установлено только однажды для всего сервера; это не может формироваться в действительного хозяина.
Description: | имя файла наборов для заготовки леса печенья |
---|---|
Syntax: |
CookieLog
filename
|
Context: | сервер config, действительный хозяин |
Status: | основа |
Module: | mod_log_config |
Compatibility: | эта директива осуждается. |
CookieLog
директива устанавливает имя файла для того, чтобы регистрировать из печенья. Имя файла - относительно
ServerRoot
. эта директива включена только для совместимости с
mod_cookies
, и осуждается.
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
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
не может использовать одно прозвище, чтобы определить другое прозвище. Отметьте, что прозвище не должно содержать признаки процента (
%
).
LogFormat "%v %h %l %u %t \"%r\" %>s %b" vhost_common
Description: | определить местоположение файла системного журнала |
---|---|
Syntax: |
TransferLog
file
|
pipe
|
Context: | сервер config, действительный хозяин |
Status: | основа |
Module: | mod_log_config |
эта директива имеет точно те же самые аргументы и эффект как
CustomLog
директива, за исключением того, что это не позволяет формату регистрации быть определенным явно или для условной заготовки леса запросов. Вместо этого формат регистрации определен последний раз указанный
LogFormat
директива, которая не определяет прозвище. Общий Формат Регистрации используется, если никакой другой формат не был определен.
LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-agent}i\""
TransferLog logs/access_log