使用ngx.log()时如何提供更多上下文信息?

时间:2019-01-31 17:58:43

标签: lua openresty

我想为我们的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。

1 个答案:

答案 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的   错误记录器,不支持自定义格式,与访问不同   记录。