Openresty自定义json访问日志

Openresty自定义json访问日志,json,nginx,customization,access-log,openresty,Json,Nginx,Customization,Access Log,Openresty,我希望将每个请求上的JSON字符串写入访问日志,以便以后更容易使用它 我使用的是Lapis/Openresty公开的print(),但是我希望覆盖nginx日志格式中的时间戳、日志级别和其他信息 如何覆盖它?要用json填充访问日志,可以在nginx.conf中使用类似的内容: log_format mydef "$json_log"; access_log logs/access.log mydef; server { ... set $json_log ''; log

我希望将每个请求上的JSON字符串写入访问日志,以便以后更容易使用它

我使用的是Lapis/Openresty公开的print(),但是我希望覆盖nginx日志格式中的时间戳、日志级别和其他信息


如何覆盖它?

要用json填充访问日志,可以在nginx.conf中使用类似的内容:

log_format mydef "$json_log";
access_log logs/access.log mydef;
server {
    ...
    set $json_log '';
    log_by_lua_block {
        local json = require "cjson"
        ngx.var.json_log = json.encode({my_json_data = 1})
    }
}
如果您想删除nginx错误日志中的默认前缀,这是不可能的,因为格式是在nginx的源代码中硬编码的

但是,您可以在
log\u by\u lua
上下文中以自定义格式向您的消费者提供数据