3

我的 linode 帐户中有我的应用程序处于生产模式,我在一页中收到 500 内部服务器错误消息:

We're sorry, but something went wrong.

但是在我的开发环境中这个页面可以正常工作。

如何调试此错误?

如何在生产模式中查看错误来源?

我希望rails在生产模式下显示错误。

我该怎么做?

谢谢!

4

2 回答 2

6

如果您可以访问 ssh,请通过 ssh 登录到您的服务器并转到您的 rails 日志目录,该目录位于您的 rails 目录中。

一旦你在那里运行命令tail production.log。如果这没有给你足够的信息,你也可以做一个tail -n100 production.log(给你最后一百行的生产日志)。

如果您已经通过 heroku 部署,那么您可以通过heroku logs在本地控制台中运行来访问日志。(更多信息在这里https://devcenter.heroku.com/articles/logging

我还发现在生产中运行时使用 exception_notification gem https://github.com/rails/exception_notification很有帮助,因为它会在发生错误时通过电子邮件向您发送堆栈跟踪。很多其他人也使用 Hoptoad (http://hoptoadapp.com/) 或 Exceptional (http://www.exceptional.io/) 但我更喜欢简单的 exception_notification gem。

此外,在极少数情况下,当我无法将错误作为最终措施进行跟踪时,我有时会在远程服务器防火墙上临时打开端口 3000 并 cd 到 rails 项目并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 回答