有沒有辦法將500/404等錯誤保存到您的數據庫中,以便您可以檢查它們以查看網站上是否存在任何錯誤?將Ruby on Rails中的500/404錯誤保存到數據庫中?
我以爲你可以從500.html頁面發送JS AJAX請求。例如
/errors/create/?message=error_message&ip=123&browser=ie9
但我不確定如何在生產模式下運行時獲取該信息?
任何幫助非常感謝,
亞歷
有沒有辦法將500/404等錯誤保存到您的數據庫中,以便您可以檢查它們以查看網站上是否存在任何錯誤?將Ruby on Rails中的500/404錯誤保存到數據庫中?
我以爲你可以從500.html頁面發送JS AJAX請求。例如
/errors/create/?message=error_message&ip=123&browser=ie9
但我不確定如何在生產模式下運行時獲取該信息?
任何幫助非常感謝,
亞歷
這是我在我的應用程序控制器:
def rescue_action_in_public(exception)
#This is called every time a non-local error is thrown.
#Copy the error to the db for later analysis.
Error.create :exception_name => exception.exception.to_s, :backtrace_info => exception.backtrace.to_s
#Then handle the error as usual:
super
end
正如你可以看到我有我創建了一個錯誤的模型,這節省了每當它發生時,新的數據庫。有一點需要記住的是,回溯對於字符串列來說非常重要,所以你需要更大的文本類型。這在我的Rails 3.0.5應用程序中起作用。
將數據記錄到數據庫是不明智的,因爲這些錯誤通常可能由數據庫問題引起。如果您的站點流量很大,如果文件系統沒有響應,那麼將錯誤追加到文件(位於單獨的磁盤上)會更安全,那麼您的數據庫無法正常工作。更安全的是使用另一臺服務器上託管的異步消息隊列。在這兩種情況下,您都可以通過定期分析日誌輸出來創建報告。
檢查http://stackoverflow.com/questions/1160720/log-to-database-instead-of-log-files還有類似的問題討論 – Bohdan