我想为我们的OpenResty应用程序提供结构化日志记录。我们的目标是实现MDC(映射诊断上下文)或类似的东西。
当前,调用ngx.log(ngx.NOTICE, "foo")
可以得到如下信息:
2019/01/31 17:39:50 [notice] 16#16: *1 [lua] example_logging.lua:20: myfunc(): foo, client: 172.17.0.1, server: _, request: "GET /example HTTP/1.1", host: "localhost:8080"
也就是说,日志记录会自动为以下项添加键/值对:
是否存在一种机制,可以在不修改对ngx.log()
的调用的情况下向其中添加更多键/值对,而是将所需的数据注入其他地方?
该应用程序正在使用OpenResty 1.11.2.1-2。
答案 0 :(得分:1)
我想不可能。 ngx.log
只是的一个小包装(1 ,2 ngx_log_error
),具有硬编码的消息格式,而ngx_log_error
格式也不可配置。
Old but still relevant comment from OpenResty core developer:
那么ngx.log()用于错误记录。它只是调用nginx core的 错误记录器,不支持自定义格式,与访问不同 记录。