2011-11-21 71 views
0

無論何時在生產中運行,RoR都只顯示警告和錯誤,這很好。Ruby on Rails:生產環境的詳細錯誤日誌

無論如何,記錄器不顯示有關錯誤的詳細信息:沒有時間戳,沒有IP地址,沒有用戶請求。

我試着創建一個自定義記錄器,但它不允許我在不使用惡意方法的情況下獲取IP地址和實際用戶請求(因爲它在模型中)。

理想情況下,我想有消息,如:

Started GET "/api/request?" for 89.80.x.x at Mon Nov 21 17:29:08 +0100 2011 

和下面的錯誤STRACK痕跡。但這些應該只顯示警告和錯誤,並且最終用戶不應該看到它們(因此,應關閉should_all_requests_local)。

任何方式來實現這一目標?

+0

以下堆棧跟蹤錯誤?也許你應該看看裏面['log4r'](http://stackoverflow.com/questions/5664136/how-to-configure-log4r-with-rails-3-0-x)以及如何將它與軌道集成(那裏應該是一個比鏈接問題更簡單的方式)。 – mliebelt

回答

1

在生產模式中的例外不應該經常發生,所以我去了這個寶石:Exception Notification

應該立即處理生產模式中的異常,這樣對於(至少對我來說)更好,然後記錄錯誤。

+0

我也使用[例外通知](https://github.com/rails/exception_notification)gem,它允許我讓生產服務器只顯示友好的錯誤頁面,而我幾乎立即得到所有討厭的細節。事實上,我友好的錯誤頁面告訴用戶已經發送了通知,所以他們甚至不需要做任何事情。 –