Формат LogFormat в Apache
В статье приведен список параметров, которые используются при создании журнальных файлов web-сервера Apache. Данные параметры используются в директивах LogFormat и CustomLog.
Для определения формата записываемых в журнал данных (формат журнала) используется директива LogFormat.
Можно создать несколько вариантов форматов, назначив каждому из них псевдоним, а затем использовать, созданные псевдонимы в директивах CustomLog.
Если директива LogFormat определяет формат журнала без создания псевдонима, то созданный формат применяется к директиве TransferLog. Для записи журналов директива TransferLog использует формат, описанный в последней директиве LogFormat, либо формат по умолчанию (если ни одной директивы LogFormat не найдено).
Формат журнала определяется строкой в которой перечисляются различные параметры запроса, такие как удаленный IP-адрес, время обращения, ответ сервера и т.п. Полный список возможных параметров приведен в таблице.
По материалам статей:
Формат журнальных файлов Apache
Apache 2: HTTP сервер. Установка, настройка
Настройка веб-сервера Apache, HTML
Для определения формата записываемых в журнал данных (формат журнала) используется директива LogFormat.
LogFormat формат|псевдоним [псевдоним]
Можно создать несколько вариантов форматов, назначив каждому из них псевдоним, а затем использовать, созданные псевдонимы в директивах CustomLog.
- common - стандартное логирование запросов, включающее в себя IP адрес клиента, время, строку запроса, код ответа и размер ответа (формат %h %l %u %t "%r" %>s %b)
- combined - логирование запросов, равное common, но с добавлением ещё адреса страницы, откуда пришел посетитель и типа браузера посетителя (формат %h %l %u %t "%r" %>s %b "%{Referer}i" "%{User-Agent}i")
- referer - формат %{Referer}i -> %U
- agent - формат %{User-agent}i
- traffic - лог трафика (формат %h %l %u %t "%r" %>s %O %I "%{Referer}i" "%{User-Agent}i")
- common-wide - "обширный" (формат %h %l %u %a %U %t "%r" %>s %b "%{Referer}i" "%{User-Agent}i")
- full - полный (формат %a | %h | %t | %{Host}i | %U | %>s | %b | %{Referer}i | %{User-Agent}i | %T)
- errors - журнальный файл ошибок - в него записываются все сообщения об ошибках
- rewrite - журнальный файл модуля mod_rewrite
- scripts - журнальный файл ошибок CGI скриптов (для логирования ошибок рекомендуем использовать журнальный файл типа errors.
LogFormat "%h %l %u %t \"%r\" %>s %b" common LogFormat "%h %t %>s" short CustomLog logs/access.log common CustomLog logs/short.log short
Если директива LogFormat определяет формат журнала без создания псевдонима, то созданный формат применяется к директиве TransferLog. Для записи журналов директива TransferLog использует формат, описанный в последней директиве LogFormat, либо формат по умолчанию (если ни одной директивы LogFormat не найдено).
LogFormat "%h %l %u %t \"%r\" %>s %b" TransferLog logs/access.log
Формат журнала определяется строкой в которой перечисляются различные параметры запроса, такие как удаленный IP-адрес, время обращения, ответ сервера и т.п. Полный список возможных параметров приведен в таблице.
Параметр |
Описание |
| %% | % |
| %a | IP-адрес удаленного хоста |
| %A | IP-адрес локального хоста |
| %B | Размер ответа сервера в байтах, исключая HTTP-заголовки |
| %b | Размер ответа сервера в байтах, исключая HTTP-заголовки. Вывод записывается в формате CLF, т.е. если ответ сервера равнялся 0 байтов, то вместо 0 записывается прочерк '-' |
| %{my_cookie}C | Значение cookies с именем my_cookie |
| %D | Время в миллисекундах, потраченное сервером на обслуживание запроса. |
| %{env}e | Значение переменной окружения с именем ENV:
|
| %f | Имя файла, указанное в запросе |
| %h | Имя удаленного хоста |
| %H | Протокол запроса, например HTTP/1.1 |
| %{header}i | Значение заголовка с именем header в запросе.
|
| %I (i большое) | Полученные байты, включая сам запрос и заголовки. Для использования этого параметра необходимо подключить модуль mod_logio |
| %l (L маленькое) | Идентификатор клиента. Записывается если включена директива IndentyCheck и клиент предоставил данные для идентификации, в противном случае записывается прочерк. Простыми словами: имя удаленного пользователя (если задействован ident) |
| %m | Метод запроса: GET, POST, PUT и т.д. |
| %{ModuleNote}n | Значение примечания с именем ModuleNote, созданной другим модулем (например, %{forensic-id}n или %{cookie}n) |
| %{header}o | Значение заголовка с именем header в ответе сервера. |
| %O | Отправленные байты, включая заголовки. Для использования этого параметра необходимо подключить модуль mod_logio |
| %p | Порт сервера, который обслуживает запрос |
| %P | PID дочернего процесса Apache, который обслуживает запрос. |
| %{format}P | Идентификатор процесса, либо идентификатор нити дочернего процесса Apache, обслуживающего запрос. В качестве формата могут быть указаны pid или tid. Доступно для использования, начиная с Apache 2.0.46. Пример: %{pid}P |
| %q | Параметры строки запроса, указанные после символа ?. Если параметров не найдено, то записывается '-' |
| %r | Первая строка запроса. |
| %s | Статус ответа сервера: 200, 401, 403, 404 и т.п. |
| %>s | Последний статус ответа сервера, если имели место внутренние перенаправления запроса. |
| %t | Время, в которой сервер зафиксировал запрос в CLF-формате ([day2d/month3l/year4d:hour2l:minute2l:second2l zone], где zone в формате [+|-]hour2dmin2d) |
| %{format}t | Время, отформатированное в соответствии с параметром format. Синтаксис параметра format на man-странице для strftime в системах unix, а также в описании функции strftime в справочнике функций PHP. |
| %T | Время в секундах, затраченное на обслуживание запроса |
| %u | Имя удаленного пользователя, если запрос требовал аутентификации HTTP и если статус не равен 401 |
| %U | Запрошенный URL, исключая параметры, указанные после символа ? |
| %v | Каноноческое имя сервера, обслуживающего запрос |
| %V | Имя сервера, записанное в формате, определенным директивой UseCanonicalName |
| %X | Статус соединения, после отправки ответа сервера.
|
По материалам статей:
Формат журнальных файлов Apache
Apache 2: HTTP сервер. Установка, настройка
Настройка веб-сервера Apache, HTML