Old Geezer Asked: 2018-08-28 17:53:09 +0800 CST2018-08-28 17:53:09 +0800 CST 2018-08-28 17:53:09 +0800 CST nginx - 截断访问日志中的字段 772 有没有办法截断存储在访问日志中的字段内容? 我有兴趣只保留 User-Agent 的前十个字符。 nginx 1 个回答 Voted Best Answer user8472 2018-08-28T19:26:42+08:002018-08-28T19:26:42+08:00 首先,您引入一个包含截断用户代理的自定义变量。为此,您可以map在常规用户代理变量$http_user_agent. 地图模块的文档在这里: http: //nginx.org/en/docs/http/ngx_http_map_module.html。然后使用log_format指令配置日志记录格式,请参阅https://docs.nginx.com/nginx/admin-guide/monitoring/logging/上的文档。最后,您告诉access_log使用您的自定义日志记录格式。 总之: # ... http { map $http_user_agent $trunc_agent { default ""; "~*(?P<tr>.{0,10}).*" $tr; } log_format myformat '[other fields] "$trunc_agent"'; access_log [logfile] myformat; } # ...
首先,您引入一个包含截断用户代理的自定义变量。为此,您可以
map
在常规用户代理变量$http_user_agent
. 地图模块的文档在这里: http: //nginx.org/en/docs/http/ngx_http_map_module.html。然后使用log_format
指令配置日志记录格式,请参阅https://docs.nginx.com/nginx/admin-guide/monitoring/logging/上的文档。最后,您告诉access_log
使用您的自定义日志记录格式。总之: