当日志中没有错误消息时,如何诊断Heroku上的500错误?

lal*_*ala 27 ruby-on-rails heroku internal-server-error

我在Heroku上有一个Rails应用程序,它以随机间隔提供500个错误.网页将以纯文本显示"内部服务器错误",而不是通常的"我们很抱歉.出了问题." 页.当我刷新页面时,它工作正常.

日志不会显示错误消息

» 14:20:34.107 2013-10-11 12:20:33.763690+00:00 heroku router - - at=info method=HEAD path=/ host=www.mydomain.com fwd="184.73.237.85/ec2-184-73-237-85.compute-1.amazonaws.com" dyno=web.1 connect=1ms service=63ms status=200 bytes=0
» 14:21:03.957 2013-10-11 12:21:03.561867+00:00 heroku router - - at=info method=GET path=/ host=www.mydomain.com fwd="50.112.95.211/ec2-50-112-95-211.us-west-2.compute.amazonaws.com" dyno=web.1 connect=0ms service=1ms status=500 bytes=21
Run Code Online (Sandbox Code Playgroud)

支持告诉我要查看New Relic中的请求排队,但New Relic只显示一个大的红色标记,表示服务器已关闭(即使网站在刷新时工作正常).

没有错误消息,我对如何诊断此问题感到茫然.

LMo*_*LMo 37

尝试添加rails_12factorgem以获得更强大的错误日志(仅当您使用Heroku时).

确保你rake db:migrate在Heroku上的数据库heroku run rake db:migrate

  • 我收到500错误,就像原始海报一样,即使使用LogEntries,也没有给出更多信息.运行'heroku run rake db:migrate'后,应用程序正在运行且没有错误. (2认同)

Ric*_*eck 17

在Heroku中,我使用LogEntries诊断错误- 它比Heroku日志更容易诊断错误.

我所做的是加载应用程序,在LogEntries面板中,转到"Live(Beta)".这显示出现的任何错误,并且通常非常明确

只是可能有所帮助的东西


aba*_*sta 6

将我的 Django 应用程序部署到 Heroku 时对我有用的解决方案是进入 production.py 文件并将代码更改DEBUG = FALSEDEBUG = TRUE. 这样,你应该能够看到 Django 显示的错误。请注意,一旦您发现错误并进行更正,则必须将此设置更改回FALSE

如果更改为TRUE显示应用程序正常工作但错误不可见,请检查您的 forms.py 文件并确保您的模型没有任何不一致。在我之前的案例中,forms.py 文件是罪魁祸首。