33

我在 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 只显示一个大红色标记,表示服务器已关闭(即使刷新时站点工作正常)。

没有错误消息,我不知道如何诊断这个问题。

4

3 回答 3

39

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

确保您rake db:migrate在 Heroku 上的数据库使用heroku run rake db:migrate

于 2014-07-28T00:44:46.117 回答
17

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

我要做的是加载应用程序,然后在 LogEntries 面板中,转到“Live (Beta)”。这显示了出现的任何错误,并且通常非常容易解释

只是可能有帮助的东西

于 2013-10-19T09:51:53.600 回答
6

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

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

于 2019-05-20T04:48:08.470 回答