Подтвердить что ты не робот

Как вы диагностируете ошибку 500 на Heroku, когда в журналах нет сообщения об ошибке?

У меня есть приложение Rails на Heroku, которое обслуживает 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 показывает только большую красную метку, говорящую о том, что сервер не работает (даже если сайт отлично работает при обновлении).

Без сообщений об ошибках я затрудняюсь для диагностики этой проблемы.

4b9b3361

Ответ 1

В Heroku я диагностирую ошибки LogEntries - это намного проще, чем журналы Heroku для диагностики ошибок.

Я загружаю приложение, а на панели LogEntries перейдите в раздел "Live (Beta)". Это показывает любые ошибки, которые появляются и, как правило, очень толковые

Просто что-то, что может помочь

Ответ 2

Попробуйте добавить гем rails_12factor чтобы получить более надежный журнал ошибок (только если вы используете Heroku).

Убедитесь, что вы heroku run rake db:migrate rake db:migrate свою базу данных на Heroku с помощью heroku run rake db:migrate

Ответ 3

Решение, которое сработало для меня при развертывании моих приложений Django в Heroku, - это зайти в файл production.py и изменить код DEBUG = FALSE на DEBUG = TRUE. Таким образом, вы сможете увидеть ошибки, которые отображает Django. Имейте в виду, что, как только вы нашли ошибку и внесли исправления, этот параметр должен быть изменен на FALSE.