2015-07-22 55 views
4

当我尾巴的日志,并打我的应用程序,我有heroku[router]告诉我,我收到了500,应用程序显示通常的“我们很抱歉,但出了问题“的消息......但没有从日志中的Rails额外的细节告诉我什么是造成500.500 Heroku日志中,但没有来自Rails的错误细节(即使与rails_12factor)

我读过一些其他线程询问这个,但他们主要最后人们建议做一个修正了错误的rake:db migrate,但不幸的是没有进一步的讨论。 (是的,我敢肯定,没有未决的迁移)

  • 我有rails_12factor宝石安装
  • 我试过在production.rb
  • 设置config.log_level = :debug我试图创建LOG_LEVEL集的配置变量DEBUG(应取代的配置设置)
  • 我在config.ruas suggested here
设置

我错过了什么?

顺便说一句,已尝试重新生产我的实际问题与Heroku使用的数据库的备份,但我不能再现它,所以我终于被迫到这个日志记录问题的底部。

回答

3

我第一次刚拿到这款手动添加的工作:

config.logger = Logger.new(STDOUT)

到production.rb但掩盖了真正的问题...

RACK_ENVRAILS_ENV均被设置为staging,而我在:production集合中加载了宝石...因此,尽管Heroku告诉我在实例启动时使用了rails_12factor宝石,但它并不是真的(我认为如果它不是一个产品环境,错误的屁股)

staging.rb was loading production.rb这就是为什么设置STDOUT那里工作,从而进一步混淆问题。

感谢您的答复,并希望这将有助于未来的其他人 - 去检查您的配置变量和/或更改宝石加载的位置! :)

+0

它的确如此。如果你捆绑列表,你应该看到https://github.com/heroku/rails_serve_static_assets确保它的版本是0.0.4。您的部署输出中是否有任何警告? – Schneems

+0

感谢您回复@Schneems! 'bundle list'的输出给出'''* rails_12factor(0.0.3) * rails_serve_static_assets(0.0.4) * rails_stdout_logging(0.0.3)'''部署时没有任何警告确认:''使用rails_12factor 0.0.3使用rails_serve_static_assets 0.0.4使用rails_stdout_logging 0.0.3''' – jmasson

0

heorku上的调试错误可能会在大多数时间变得困难。

对于面临类似问题的人,我建议使用PaperTrail heroku插件进行登录,它是免费的一定限制。

这是实时的,并提供搜索日志,事件挂钩,邮件警报等设施。在heroku上调试错误永远不会有问题。

您可以使用heroku cli命令进行简单安装。 heroku addons:create papertrail

+0

我喜欢Papertrail,并且也将它用于此应用程序,但它仍然只获取您提供的日志,所以仍然需要上述完成。 – jmasson