Формат 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