Как вы диагностируете ошибку 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