天天看點

[Rails 常用插件簡介] Exception Logger

你是如何處理你的Exception呢?在使用Exception Notifier([url]http://mmm.iteye.com/blog/116862[/url])麼?

今天來介紹另外一個Exception Logger。

[b][size=medium]0:Exception Logger 是什麼[/size][/b]

顧名思義,就是記錄你的exception。儲存在資料庫中,并且提供可視化的界面。

[b][size=medium]1:先來瞅瞅她是什麼樣的[/size][/b]

[img]http://mmm.iteye.com/upload/picture/pic/6975/69f1bd8d-adf4-3f3f-9cb5-170da42068fb.gif[/img]

左邊是exceptions的清單,右邊是filte

[img]http://mmm.iteye.com/upload/picture/pic/6983/70e06e24-8b4a-3a02-b64e-9fe87d42f809.gif[/img]

可以通過:exception的類型,所在的controller和時間來篩選。并且還提供了一個查詢和RSS。

點選exception的名稱可以看到詳細的 Request Backtrace Environment,如果你以前用過Exception Notifier,這些應該很熟悉的了。

[b][size=medium]2:使用[/size][/b]

安裝插件

[code]

ruby script/plugin install http://svn.techno-weenie.net/projects/plugins/exception_logger

[/code]

注:這玩意用了古老的paginate,如果你不想動手修改,那麼請安裝classic_pagination

[code]

ruby script/plugin install svn://errtheblog.com/svn/plugins/classic_pagination

[/code]

在applicatin.rb中增加如下的代碼

[code]

include ExceptionLoggable

[/code]

新增route

生成migrate

[code]

ruby script/generate exception_migration

[/code]

建立表結構

[code]

rake db:migrate

[/code]

這就可以了,運作看下效果。

其他的你按照他自帶的README 繼續折騰就可以了。

[b][size=medium]3:繼續折騰[/size][/b]

也許你和我一樣,并不願意使用已經被DEPRECATED的的paginate,想動手修改下,直接能在will_paginate下運作的程式,好,有此想法我們繼續,如果沒有,那就此打住吧。

首先,确認安裝了will_paginate

[code]

ruby script/plugin install svn://errtheblog.com/svn/plugins/will_paginate

[/code]

介紹見這裡

[url]http://errtheblog.com/posts/56-im-paginating-again[/url]

和我以前寫過的

[url]http://mmm.iteye.com/blog/116931[/url]

修改/vendor/plugins/exception_logger/lib/logged_exceptions_controller.rb 第35行的代碼

把原來分頁的代碼改成

@exceptions = LoggedException.paginate
           

并且新增:page參數,完整代碼如下

修改/vendor/plugins/exception_logger/views/logged_exceptions/_exceptions.rhtml

把上面和下面<div class="pages">裡面的内容改成

<div class="pages">
        <%= will_paginate @exceptions%>
    </div>
           

好了,儲存執行下看下效果。

[b][size=medium]4:還有嗎?[/size][/b]

等等,當我exception超過一頁的時候,及超過30條的時候,點下一頁沒有了原來的效果,不再是ajax加載了,而是重新整理整個頁面的了。哦,對,我們需要在will_paginate上增加link_to_remote的效果,還好,這東西,老早就折騰過了,見這裡:ajax_paginate

[url]http://mmm.iteye.com/blog/121410[/url],這個是我以前折騰的,正好拿來用用:)

安裝

再将原來的will_paginate替換成ajax_paginate就可以了:)

如果你願意的話,可以再加上will_paginate推薦的那一駝CSS。收工了

[img]http://mmm.iteye.com/upload/picture/pic/6979/c9eeb952-999f-3921-b464-fa9eead378a9.gif[/img]

[size=medium]5:你不想修改,還是想使用,怎麼辦[/size]

哦,那我來幫你做吧,請直接安裝

[code]

ruby script/plugin install http://martinx.googlecode.com/svn/trunk/plugins/exception_logger

[/code]

[b][size=medium]相關Blog(手工關聯?? :( ):[/size][/b]

[Rails 常用插件簡介]ajax_paginate

[url]http://mmm.iteye.com/blog/121410[/url]

[Rails 常用插件簡介]will_paginate

[url]http://mmm.iteye.com/blog/116931[/url]

[Rails 常用插件簡介]Exception Notifier

[url]http://mmm.iteye.com/blog/116862[/url]

繼續閱讀