如何使我的 Rails 应用程序的每个独角兽工作者日志到不同的文件?
如何使 Rails 应用程序的每个独角兽工作者写入不同的日志文件?
原因:混合日志文件的问题...... 在默认配置中,Rails 会将其日志消息写入单个日志文件:log/
。
Unicorn 工作线程会同时写入同一个日志文件,消息可能会混淆。当 request-log-analyzer 解析日志文件时,这是一个问题。举个例子:
Processing Controller1#action1 ...
Processing Controller2#action2 ...
Completed in 100ms...
Completed in 567ms...
在这个例子中,什么动作在100ms内完成,什么动作在567ms内完成?我们永远无法确定。
How can I make each unicorn worker of my Rails application writting in a different log file ?
The why : problem of mixed log files...
In its default configuration, Rails will write its log messages to a single log file: log/<environment>.log
.
Unicorn workers will write to the same log file at once, the messages can get mixed up. This is a problem when request-log-analyzer parses a log file. An example:
Processing Controller1#action1 ...
Processing Controller2#action2 ...
Completed in 100ms...
Completed in 567ms...
In this example, what action was completed in 100ms, and what action in 567 ms? We can never be sure.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
将此代码添加到 unicorn.rb 中的 after_fork 中:
add this code to after_fork in unicorn.rb:
@slact 的答案在 Rails 3 上不起作用。这有效:
@slact's answer doesn't work on Rails 3. This works: