【问题标题】:Any way to keep each request separate in the Rails log?有什么方法可以让每个请求在 Rails 日志中分开?
【发布时间】:2013-09-26 09:46:43
【问题描述】:

我希望将每个请求的日志组合在一起,以便与另一个请求的日志区分开来,例如

**********************

Started GET "/" for 67.205.67.76 at 2013-09-15 00:05:15 -0700
Processing by RootController#index as HTML
Rendered root/_index.html.erb within layouts/application (7.0ms)
Rendered layouts/_fonts_hack.html.erb (0.0ms)
Rendered layouts/_ie_version_vars.html.erb (0.0ms)
Rendered topbars/_logged_out_topbar.html.erb (2.0ms)
Rendered layouts/_old_browser_warnings.html.erb (0.0ms)
Completed 200 OK in 27ms (Views: 26.0ms | ActiveRecord: 0.0ms)

**********************

Started GET "/" for 67.205.67.76 at 2013-09-15 00:05:15 -0700
Processing by RootController#index as HTML
Rendered root/_index.html.erb within layouts/application (7.0ms)
Rendered layouts/_fonts_hack.html.erb (0.0ms)
Rendered layouts/_ie_version_vars.html.erb (0.0ms)
Rendered topbars/_logged_out_topbar.html.erb (2.0ms)
Rendered layouts/_old_browser_warnings.html.erb (0.0ms)
Completed 200 OK in 27ms (Views: 26.0ms | ActiveRecord: 0.0ms)

***********************

这样的事情可能吗?有时在我目前的日志中,很难直观地看到一个请求从哪里开始,另一个在哪里结束,有时来自不同请求的日志会散布在其中。

【问题讨论】:

  • 你可以放一个全局的前置过滤器,只记录一些星星到记录器...
  • 当你得到两个并发请求时会发生什么?

标签: ruby-on-rails logging ruby-on-rails-3.2


【解决方案1】:

更好的选择是使用request uuid

config.log_tags = [:uuid]

【讨论】:

  • 来自诸如 Rake 任务之类的日志呢...
【解决方案2】:

据我所知,似乎不是这样,但下一个最好的事情是:将 Pid 和 Thread object_id 标签添加到每个日志,然后在到达请求开始时搜索并突出显示特定标签,然后所有突出显示的行将是您请求中的行。

config.log_tags = [ lambda {|r| "#{Process.pid}##{Thread.current.object_id}" } ]

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-08-22
    • 1970-01-01
    • 1970-01-01
    • 2013-06-10
    • 2016-08-15
    • 2021-06-26
    • 1970-01-01
    • 2020-01-28
    相关资源
    最近更新 更多