【发布时间】:2014-09-22 20:28:30
【问题描述】:
我正在尝试从 nginx 生成 JSON 日志。
我知道像 this one 这样的解决方案,但我想记录的一些字段包括需要正确转义的用户生成的输入(如 HTTP 标头)。
我知道 2011 年 10 月和 2008 年 5 月的 nginx 更改日志条目说:
*) Change: now the 0x7F-0x1F characters are escaped as \xXX in an
access_log.
*) Change: now the 0x00-0x1F, '"' and '\' characters are escaped as \xXX
in an access_log.
但这仍然无济于事,因为\xXX 是invalid in a JSON string。
我还查看了具有 set_quote_json_str 指令的 the HttpSetMiscModule 模块,但这似乎只是在没有帮助的字符串周围添加了 \x22。
对于其他从 nginx 以 JSON 格式登录的解决方案有什么想法吗?
【问题讨论】:
-
您帖子中的链接给了我 HTTP/500 ... 因为它不是 nginx 的核心功能,我假设您是使用第 3 方模块自己从源代码构建的。如果是这种情况,您可以简单地编辑代码并将 \xXX 更改为 \uNNNN,如下所示:github.com/kayrus/nginx/blob/…
-
您可以查看此链接:blog.logentries.com/2014/08/…,它可能对您有所帮助。