pipelog_format
定义一种日志格式,用于通过管道将 HTTP 访问日志条目发送到外部程序。
NGINX pipelog module
·
httpserverlocation
语法pipelog_format name [escape=default|json|none] string ...;
默认值none
上下文http, server, location
参数2+
说明
NGINX pipelog 模块中的 pipelog_format 指令允许管理员为发送到外部进程的 HTTP 访问日志定义自定义日志格式。与标准 HTTP 日志系统中的 log_format 指令类似,它支持灵活的语法,用户可以指定在日志条目中包含的各种变量,例如客户端 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 配置中的转义规则。