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

时间:2013-10-16 18:18:19

标签: 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

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

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

3 个答案:

答案 0 :(得分:35)

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

请确保rake db:migrate使用heroku run rake db:migrate

在Heroku上{{1}}数据库

答案 1 :(得分:15)

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

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

可能会有所帮助

答案 2 :(得分:0)

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