簡體   English   中英

停止乘客時,未沖洗自定義導軌記錄器

[英]Custom rails loggers not flushed when stopping passenger

我的rails應用程序中有幾個記錄器,這些記錄器在生產中是這樣初始化的:

log_file = File.open("#{Rails.root}/log/my_log_#{Rails.env}.log", 'a')
log_file.sync = !Rails.env.production?

LOG = Logger.new(log_file)

我使用上述方法如下:

LOG << "my message\n"

請注意, log_file.sync在生產中為false,因為我不想在記錄的每條消息上都寫入磁盤。 我注意到的問題是,當我停止rails apache服務器( sudo /etc/init.d/httpd stop )時,不會刷新我的LOG 結果,我丟失了消息。 這是預期的行為嗎?

奇怪的是,我通過使用Rails控制台(生產)向該LOG寫入了一堆日志消息進行了故障排除。 當我關閉rails控制台時,我的LOG按預期刷新了。 因此,這使我相信如何關閉“乘客”中的rails實例有問題。

那么,如何在rails控制台中而不是在實際的Passenger服務器中正確刷新LOG 我想念什么?

我正在運行Rails 3.2.8,並使用帶有w / passenger 3.0.17的Apache。

謝謝!

升級到Passenger 4.0.45可以解決此問題。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM