当我将Rails应用程序上传到Heroku时,我得到了使用Heroku日志的错误
NoMethodError (undefined method `flush' for #<Logger:0x00000005501680>):
2012-12-20T16:20:42+00:00 app[web.1]: app/controllers/application_controller.rb:19:in `block in <class:ApplicationController>'
这是因为
rescue_from 'Exception' do |ex|
Rails.logger.fatal formatted_exception(ex)
Rails.logger.flush
in ApplicationController
.
我该如何修复它?
Flush是IO上定义的一个方法,用于将缓存的输出刷新到管道中。
考虑到Heroku的多环境设置,它们可能有自己的IO管道实现,可能没有定义flush。如果未定义Flush,则可以相当安全地打赌您不需要它,并且它会在接收输入时自动刷新。
怎么样rescue_from 'Exception' do |ex|
Rails.logger.fatal formatted_exception(ex)
Rails.logger.flush if Rails.logger.respond_to? :flush
公立小学你可能不应该拯救Exception:为什么' rescue Exception =>他在Ruby?