ruby-on-rails – 使用Rails 4和结构化日志记录,如何将请求ID字段添加到日志?

前端之家收集整理的这篇文章主要介绍了ruby-on-rails – 使用Rails 4和结构化日志记录,如何将请求ID字段添加到日志?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我将结构化日志记录添加到Rails 4应用程序.使用0700和 logstash-logger描述在 this article,我有事情主要工作.

无法在日志中添加请求ID.我找到的最接近的是将其添加到config / ${ENV} .rb中:

config.log_tags = [:uuid]

但是,将请求标识添加标签列表中,而不是将其添加为命名字段.

{
  "tags": [
    "da76b4be-01ae-4cc4-8d3c-87062ea02cfe"
  ],"host": "services","severity": "DEBUG","@version": "1","@timestamp": "2016-09-13T17:24:34.883+00:00","message": "..."
}

这是有问题的.这使得它对于如何搜索特定的请求ID而言更为尴尬和不那么明显.另外,在logstash中解析消息会覆盖已经与日志消息相关联的任何其他标签.

有什么办法可以将请求ID作为命名字段添加到日志中吗?

{
  "request_id","da76b4be-01ae-4cc4-8d3c-87062ea02cfe","message": "..."
}

解决方法

有几种方法可以做到这一点.从Lograge,您可以使用custom_options:
# all your lograge stuff...
  config.lograge.enabled = true

  config.lograge.custom_options = lambda do |event|
    # use the `event.payload`
    {uuid: event.payload[:uuid]}
  end

你可以重载这里的任何选项 – 他们将接管这些lib.

负责的代码here.显示它的测试是here.

原文链接:https://www.f2er.com/ruby/265990.html

猜你在找的Ruby相关文章