2011-07-25 77 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可以做類似的事情來發現錯誤。