我正在使用自定义日志格式提取自定义标头值并将其记录在访问日志文件中:
log_format custom '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" "$http_user_agent" '
'$http_my_custom_header'
当记录不包含标头的请求时,ngx_http_log_module
会在日志中插入-
。是否可以为缺少的标题定义默认值?我需要标题总是有一个数值,以便以后在elasticsearch中进行索引。
我有一个使用map的解决方法,在缺席时将标头值设置为0
:
map $http_my_custom_header $custom_header {
default $http_my_custom_header;
'' 0;
}
log_format custom '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" "$http_user_agent" '
'$custom_header'
我希望有一个更优雅的解决方案,因为我将来会添加更多标题。