如何使rails + unicorn记录器线程安全?

时间:2012-05-26 15:26:43

标签: ruby-on-rails logging unicorn

我们一直在使用独角兽部署我们的应用程序。除了production.log文件之外,一切都很顺利,因为独角兽的设计方式,这个文件变得难以理解。每个独角兽的实例都写到同一个文件中,导致意大利面的所有线条都在一起。

那么有没有办法告诉记录器在多个独角兽实例中独立记录?

1 个答案:

答案 0 :(得分:2)

修改您的unicorn.conf.rb,并将after_fork块更改为:

after_fork do |server, worker|

  filepath = "#{Rails.root}/log/#{Rails.env}.#{worker.nr}.log"
  Rails.logger = Logger.new(filepath, File::WRONLY | File::APPEND)
  ActiveSupport::LogSubscriber.logger = Rails.logger
  ActionController::Base.logger = Rails.logger
  ActionMailer::Base.logger = Rails.logger
  ActiveResource::Base.logger = Rails.logger

end