web-dev-qa-db-ja.com

ログにエラーメッセージがない場合、Herokuで500エラーをどのように診断しますか?

Rails Herokuのアプリで、500個のエラーをランダムな間隔で処理しています。Webページには、通常の「申し訳ありません。何かが起こったのではなく、プレーンテキストで表示されます。間違っています。」ページ。ページを更新すると正常に動作します。

ログにエラーメッセージが表示されず、ただ

» 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はサーバーがダウンしていることを示す大きな赤いマークしか表示しません(サイトが更新されても正常に機能します)。

エラーメッセージが表示されないので、この問題を診断する方法がわかりません。

28
lala

Herokuでは、 LogEntries でエラーを診断します。Herokuログよりもはるかに簡単にエラーを診断できます。

アプリをロードして、LogEntriesパネルで「Live(Beta)」に移動します。これは、表示されるエラーを示し、一般的に非常に説明的です

役立つかもしれないちょうど何か

17
Richard Peck

Rails_12factor gemを追加して、より堅牢なエラーログを取得してみてください(Herokuを使用している場合のみ)。

Heroku上のデータベースをrake db:migrate _heroku run rake db:migrateしてください。

35
LMo

DjangoアプリをHerokuにデプロイするときに私のために働いたソリューションは、production.pyファイルに移動してコードを変更することですDEBUG = FALSEDEBUG = TRUE。このようにして、Djangoが表示するエラーを確認できるはずです。注意エラーを見つけて修正したら、この設定はFALSEに戻します。

0
abautista