主動攔截 Rails exception 錯誤

喔,炸了。

相信以上畫面大家都不陌生,這是一個標準的 Rails app 錯誤頁面。雖然我們努力避免,但總是有出錯的時候,一個上 production mode 的專業 Rails app 絕不會痴痴地等待使用者告訴你網站炸了,而是要能夠主動通知及紀錄下這個錯誤例外(exception),好讓我可以 trace error、fixed bug 甚至在發生錯誤沒多久就可以 E-mail 告訴這位使用者苦主發生了什麼事情。

解法有幾種:

  1. 安裝 exceiption_notifition,這是個官方的基本 Plugin ,它會在發生例外時寄 email 通知你(們)。

  2. 安裝 ExceptionLogger (作者 defunkt 也是 facebox 的作者 :p ),這個 Plugin 會紀錄到 database,並提供一個後台可以瀏覽。不過這個後台裝起來比較麻煩,例如你還得處理瀏覽權限等等。

  3. 使用 Hoptoad 第三方服務,這是個由知名Rails團隊 thoughtbot 所提供的 Web service。申請帳號之後可以拿到 API key 及 Plugin,於是你的網站發生 exception 的時候就會自動將錯誤訊息送到 Hoptoad 收集起來。Hoptoad 提供了還蠻不錯的後台可以瀏覽。這個解法安裝最簡單,功能又很夠用,還可以統計及追蹤例外處理的情況,我個人十分推薦使用。

github 上應該還有其他的 Plugins 可以幫助你處理這個問題。anyway… 最糟的就是什麼都不做,讓使用者告訴你有東西炸了,然後你再去爬去找 log 檔 :)

1 thought on “主動攔截 Rails exception 錯誤

Leave a Reply