Unicorn worker毎にRailsログを別ファイルに書き出す
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
参考リンク
Author And Source
この問題について(Unicorn worker毎にRailsログを別ファイルに書き出す), 我々は、より多くの情報をここで見つけました https://qiita.com/yuku_t/items/9ef8d3da32ca993b5699著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .