nginx logging $request_body as hexadecimal
Sinse 1.13 there is an "escape=none" parameter that turns off data escaping.
http://nginx.org/en/docs/http/ngx_http_log_module.html#log_format
log_format api_request_log escape=none '[$time_local] $request \n$request_body';
You can't stop from escaping it and will have to post process it.
Python2 example:
line = '{\x22id\x22:\x22user id\x22}'line.decode('unicode_escape')>> u'{"id":"user id"}'
Python3 example:
line = '{\x22id\x22:\x22user id\x22}'bytes(line, 'utf-8').decode('unicode_escape')>> '{"id":"user id"}'
Ruby example (from https://stackoverflow.com/a/18752208/2398354):
require 'yaml'line = '{\x22id\x22:\x22user id\x22}'YAML.load(%Q(---\n"#{line}"\n))=> "{\"id\":\"user id\"}"
Note: This last example is useful if post processing a file with logstash