我的 linode 帐户中有我的应用程序处于生产模式,我在一页中收到 500 内部服务器错误消息:
We're sorry, but something went wrong.
但是在我的开发环境中这个页面可以正常工作。
如何调试此错误?
如何在生产模式中查看错误来源?
我希望rails在生产模式下显示错误。
我该怎么做?
谢谢!
我的 linode 帐户中有我的应用程序处于生产模式,我在一页中收到 500 内部服务器错误消息:
We're sorry, but something went wrong.
但是在我的开发环境中这个页面可以正常工作。
如何调试此错误?
如何在生产模式中查看错误来源?
我希望rails在生产模式下显示错误。
我该怎么做?
谢谢!
如果您可以访问 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 所以我可以在控制台中看到错误,然后在我完成后关闭端口。
希望有帮助。
tail -n100 production.log
只会显示日志文件的最后 100 行。以防万一您想查看实时运行的日志。
用这个
tail -1000f log/production.log