Rails 3.2.2日志文件无序,请求交织在一起

Dav*_*ton 11 logging ruby-on-rails-3

我记得收到订单很好的日志文件,这样你就可以关注一个请求,然后关注下一个请求,依此类推.

现在,日志文件正如我4岁时所说的那样"全部被嘲笑",这意味着它们不再是独立的,不同的文本块.来自两个请求的记录交织在一起/混合在一起.

例如:

Started GET /foobar
...
Completed 200 OK in 2ms (Views: 0.4ms | ActiveRecord: 0.8ms)
Patient Load (wait, that's from another request that has nothing to do with foobar!)
[ blank space ]
Something else
Run Code Online (Sandbox Code Playgroud)

这很令人发狂,因为我无法分辨出一个请求中发生了什么.

这是在Passenger上运行的.

fgu*_*len 3

是的!,他们做了一些更改,因此ActiveSupport::BufferedLogger不再需要等到请求结束才刷新日志:

但他们添加了ActiveSupport::TaggedLogging,这非常有趣,您可以使用您想要的任何类型的标记来标记每个日志。

在您的情况下,最好使用请求 UUID标记日志,如下所示:

# config/application.rb
config.log_tags = [:uuid]
Run Code Online (Sandbox Code Playgroud)

这样,即使日志混乱,您仍然可以跟踪其中哪些日志对应于您正在跟踪的请求。

您可以使用此功能制作更多有趣的东西来帮助您进行日志研究: