2016-07-20 34 views
0

在我的配置/環境/ production.rb,我有以下幾點:Rails logger rotation =>其他進程可以寫入同一個日誌文件嗎?

config.logger = Logger.new("log/production.log", 10, 1000.megabytes) 
config.log_formatter = ::Logger::Formatter.new 

讓我們假設我從來沒有寫這篇日誌/ production.log任何地方在我的代碼。但是,我有另一個寫入同一個日誌文件的進程(稱爲Java進程)。假設Rails已啓動並運行,Rails會自動執行自動轉換,即使Rails從不寫入此日誌文件?

回答

1

號,紅寶石確實只對自己寫的旋轉:

https://github.com/ruby/ruby/blob/ruby_2_3/lib/logger.rb#L648

而且,它可能不寫,從不同的進程相同的文件是一個好主意。

+0

你能解釋爲什麼它不是一個好主意嗎? –

+0

我可能說過,所以我沒有嘗試過自己。快速谷歌搜索表明它不是微不足道的:http://stackoverflow.com/questions/7842511/safe-to-have-multiple-processes-writing-to-the-same-file-at-the-same-time-cent http: //blogs.perl.org/users/vyacheslav_matjukhin/2011/05/suprisingly-hard-task-of-writing-logs.html –

相關問題