本文主要是介绍nginx记录请求体中json请求参数,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
问题
需要记录nginx中请求体的json请求参数。
解决
只需要使用$request_body记录请求参数即可,但是请求体数据是json的时候,还需要设置日志格式为json,即:escape=json。
新设置一个日志格式:
log_format json_log escape=json '{"realip":"$remote_addr","@timestamp":"$time_iso8601","host":"$http_host","request":"$request","req_body":"$request_body","status":"$status","size":$body_bytes_sent,"ua":"$http_user_agent","cookie":"$http_cookie","req_time":"$request_time","uri":"$uri","referer":"$http_referer","xff":"$http_x_forwarded_for","ups_status":"$upstream_status","ups_addr":"$upstream_addr","ups_time":"$upstream_response_time"}';
然后,在某个具体日志处设置,这个日志格式即可:
access_log /home/xxx/xxx-test/logs/xxxx.log json_log;
这样就可以记录nginx json日志了。
参考
- Tech Blog: How to configure JSON logging in nginx?
这篇关于nginx记录请求体中json请求参数的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!