2011-07-25 43 views
1

我正在尝试调试Heroku应用程序。我在本地Rails遇到问题,所以我使用Heroku进行调试。我得到一些我POST请求的HTTP 500响应,并且唯一的Heroku是不愿意告诉我的是: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 

我怎样才能得到比这对我的服务器错误的详细信息?

+0

检查$ heroku日志的输出 – cmpolis

+0

@cmpolis:这就是我得到我的输出的地方。对不起,我没有更清楚。 –

+0

你也想调高LOG_LEVEL。检查此问题的一些更多信息:http://stackoverflow.com/questions/5994492/heroku-debugging。我还建议使用Loggly的免费级别来更轻松地进行日志审查。 – slothbear

回答

2

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

$ heroku logs 

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

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

这就是我得到我的输出的地方。对不起,我没有更清楚。 –

+0

好的。看看我为扩展日志选项链接的支持页面。将编辑答案。 – ghoppe

+0

看起来相当有用,但不幸的是,Heroku在安装任何插件之前需要进行验证,并且我没有信用卡信息。有没有不需要Heroku插件的替代方案?我怀疑它,但我必须问。 –

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可以做类似的事情来发现错误。