pipelog_format

Определяет формат журнала для отправки записей журнала доступа HTTP во внешнюю программу через канал (pipe).

Синтаксисpipelog_format name [escape=default|json|none] string ...;
По умолчаниюnone
Контекстhttp, server, location
Аргументы2+

Описание

Директива pipelog_format в модуле pipelog для NGINX позволяет администраторам определять пользовательские форматы журналов доступа HTTP, которые отправляются внешним процессам. Подобно директиве log_format, используемой в стандартной системе логирования HTTP, она поддерживает гибкий синтаксис, позволяющий указывать различные переменные для включения в записи журнала, такие как IP-адрес клиента, время запроса, статус ответа и другие. Кроме того, директива допускает параметр 'escape' для изменения того, как строки записываются в журнал, с опциями для стандартного экранирования, JSON-форматирования или полного отключения экранирования.

На практике директива pipelog_format может объявляться в контекстах http, server или location и требует как минимум двух аргументов: имени формата и собственной строки формата. Строка формата может содержать различные переменные NGINX, которые будут динамически заменяться соответствующими данными для каждого запроса. Это определение формата затем может быть связано с директивой pipelog для указания внешней команды, обрабатывающей записи журнала.

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

Пример конфига

pipelog_format main '$remote_addr - $remote_user [$time_local] "$request" $status $body_bytes_sent';

Убедитесь, что имя формата не конфликтует с существующими именами форматов логов.

Параметр escape следует установить в соответствии с требованиями к выводу; неверные настройки могут привести к искажённым логам.

Если вы используете специальные символы в строках, обратите внимание на правила экранирования в конфигурации NGINX.

← Ко всем директивам