3

Linode アカウントでアプリをプロダクション モードにしていますが、1 つのページに 500 内部サーバー エラー メッセージが表示されます。

We're sorry, but something went wrong.

ただし、私の開発環境では、このページは問題なく動作します。

このエラーをデバッグするにはどうすればよいですか?

本番モードでエラーの原因を確認するにはどうすればよいですか?

本番モードでレールにエラーが表示されるようにしたい。

どうすればいいですか?

ありがとうございました!

4

2 に答える 2

6

ssh にアクセスできる場合は、ssh 経由でサーバーにログインし、rails ディレクトリ内にある rails ログ ディレクトリに移動します。

そこに着いたら、コマンドを実行しますtail production.log。これで十分な情報が得られない場合は、次のこともできますtail -n100 production.log(生産ログの最後の 100 行が得られます)。

heroku 経由でデプロイした場合はheroku logs、ローカル コンソールで実行してログにアクセスできます。(詳細はこちらhttps://devcenter.heroku.com/articles/logging )

また、エラーが発生したときにスタックトレースをメールで送信するため、本番環境で実行している場合は、例外通知ジェムhttps://github.com/rails/exception_notificationを使用すると便利です。他の多くの人も Hoptoad (http://hoptoadapp.com/) または Exceptional (http://www.exceptional.io/) を使用していますが、私は単純な exception_notification gem を好みます。

また、最終的な手段としてエラーを追跡できないまれなケースでは、リモート サーバーのファイアウォールで一時的にポート 3000 を開き、レール プロジェクトに cd してrails server production、config/environments/ でデバッグに設定されたログ レベルで実行することがあります。 production.rb をコンソールに表示して、完了したらポートを閉じることができるようにします。

それが役立つことを願っています。

于 2012-05-19T11:25:39.607 に答える
2
tail -n100 production.log

ログ ファイルの最後の 100 行のみを表示します。リアルタイムで実行中のログを確認したい場合に備えて。

これを使って

tail -1000f log/production.log
于 2014-04-22T06:29:43.137 に答える