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

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

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

编辑你的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