Ruby on rails NoMethodError(Heroku记录器的未定义方法“flush”)

Ruby on rails NoMethodError(Heroku记录器的未定义方法“flush”),ruby-on-rails,ruby,heroku,Ruby On Rails,Ruby,Heroku,当我将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>

当我将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>'
在应用程序控制器中


如何修复它?

刷新是在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
附言


您可能不应该拯救异常:

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
附言

您可能不应该拯救异常: