Unicornで複数のRailsプロセスを動かしていると同じproduction.logにログが書きだされます。その結果ログの中身が混ざって後からみたとき何がなにやら訳がわからない感じになります。ログは人力で見るものじゃないという声もあるかと思いますが、解析器に書けたときの揺れも大きくなってしまいます。ワーカー数が増えてくると尚更辛い感じです。
分割する
config/unicorn.rb の after_fork
の中でこんな感じに書いておくとワーカー毎にログが別々に出力されるようになります。
config/unicorn.rb
after_fork do |server, worker|
Rails.logger = ActiveRecord::Base.logger = ActionController::Base.logger = begin
path = Rails.configuration.paths["log"].first
f = File.open(path.sub(".log", "-#{worker.nr}.log"), "a")
f.binmode
f.sync = Rails.configuration.autoflush_log
logger = ActiveSupport::Logger.new f
logger.formatter = Rails.configuration.log_formatter
logger = ActiveSupport::TaggedLogging.new(logger)
logger
end
end