日志格式化
Pingap格式化可以使用以下几种默认形式combined
,common
,short
以及tiny
。也可自定义完整的日志格式化输出,具体参数说明如下:
{host}
: 请求的host属性{method}
: 请求的method{path}
: 请求的路径{proto}
: 协议类型,HTTP/1.1
或HTTP/2.0
{query}
: 请求的querystring{remote}
: 请求的源ip{client_ip}
: 客户ip,获取的顺序为X-Forwarded-For
-->X-Real-Ip
-->remote
{scheme}
: 协议类型,https或http{uri}
: 请求的完整地址{referer}
: 请求头中的referer{user_agent}
: 请求的user-agent{when}
: 日志的输出时间{when_utc_iso}
: 日志的输出的utc时间{when_unix}
: 日志的输出时间,格式为时间戳{size}
: 响应数据的字节数{size_human}
: 响应数据的大小,按数据大小格式化字符串{status}
: 响应状态码{latency}
: 响应时间的ms{latency_human}
: 响应时间,按时间格式化{payload_size}
: 请求数据的字节大小{payload_size_human}
: 请求数据的大小,按数据大小格式化字符串{request_id}
: 请求的id,需要添加了对应的中间件{~name}
: 从cookie中获取name
对应的值,如获取cookie中的uid则是{~uid}
{>name}
: 请求头中获取name
对应的值,如获取请求头中的X-User-Id
则是{>X-User-Id}
{<name}
: 响应头中获取name
对应的值,如获取响应头中的X-Server
则是{<X-Server}
{:name}
: 从context中获取对应的值,支持的属性可参考后面的说明{$name}
: 从环境变量中获取name
对应的值,仅启动时获取对应的值后保存,非实时获取{$hostname}
: 获取当前服务器的hostname
context
现已支持获取context中记录的以下相关属性:
upstream_reused
: 与upstream的连接是否为复用请求upstream_addr
: 连接的upstream地址processing
: 该服务当前正在处理的请求数upstream_connect_time
: 连upstream的连接耗时(包括tcp与tls连接,若是连接复用,则值较小)upstream_connected
: 当前location与upstream的连接数upstream_processing_time
: upstream处理请求的时长upstream_response_time
: upstream响应数据的时长upstream_tcp_connect_time
: 与upstream的tcp连接耗时,若是连接复用,则为Noneupstream_tls_handshake_time
: 与upstream的tls连接耗时,若是连接复用或upstream非https,则为Nonelocation
: 对应的locationconnection_time
: 当前connection的存在时长connection_reused
: 当前connection是否复用tls_version
: tls的版本(http连接则为空)tls_cipher
: tls的加解密算法(http连接则为空)tls_handshake_time
: tls握手耗时compression_time
: 数据压缩的耗时compression_ratio
: 数据压缩比cache_lookup_time
: 缓存的查询耗时cache_lock_time
: 缓存的锁定耗时service_time
: 当前请求的服务时长(从接受到请求到处理完成)