轨道上的红宝石 - NoMethodError (Heroku 记录器的未定义方法 'flush'



当我将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?

相关内容

  • 没有找到相关文章

最新更新