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

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

2 ответов


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

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

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


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

убедитесь, что вы грабли БД: перенести базу данных на Heroku с heroku run rake db:migrate