Heroku故障排除细节

时间:2011-07-25 22:50:10

标签: ruby-on-rails heroku

我正在尝试调试Heroku应用。我在使用本地Rails时遇到问题,所以我正在使用Heroku进行调试。我收到了一些POST请求的HTTP 500响应,Heroku唯一愿意告诉我的是:

$ heroku logs
... lots of other stuff ...
POST app.heroku.com/games dyno=web.1 queue=0 wait=0ms service=36ms status=500 bytes=0

如何获取有关我的服务器错误的更多信息?

2 个答案:

答案 0 :(得分:2)

您知道Heroku logging吗?在您的本地应用程序目录中:

$ heroku logs

您还可以尝试扩展日志记录

$ heroku addons:upgrade logging:expanded
$ heroku logs --tail

答案 1 :(得分:0)

您可以在Rails中捕获服务器错误并记录它们。最简单的方法是在控制器中添加rescue_from子句。这将允许您定义一个方法,当未捕获的异常从您的代码中冒出时,将调用该方法。

rescue_from UserNotFoundError, :with => :user_not_found

def throw
  #Triggers a UserNotFound error
  @user = User.find(42)
end

def user_not_found(exception)
  Rails.logger.warn { "User not found\n#{exception.backtrace.join("\n\t")}" }

  @message = "Exception logged."
  render :errors
end

对于奖励积分,您可以将其添加到基础ApplicationController班级。

我正在研究Progstr Logger,一个免费的Heroku插件,可以更轻松地存储和搜索日志。我们还有online example做类似的事情来捕捉错误。