你是如何处理你的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行的代码
把原来分页的代码改成
并且新增:page参数,完整代码如下
修改/vendor/plugins/exception_logger/views/logged_exceptions/_exceptions.rhtml
把上面和下面<div class="pages">里面的内容改成
好了,保存执行下看下效果。
[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]
今天来介绍另外一个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
map.exceptions '/logged_exceptions/:action/:id', :controller => 'logged_exceptions', :action => 'index', :id => nil
生成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参数,完整代码如下
@exceptions = LoggedException.paginate \
:order => 'created_at desc',
:per_page => 30,
:page=>params[:page]||1,
:conditions => conditions.empty? ? nil : parameters.unshift(conditions * ' and ')
修改/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],这个是我以前折腾的,正好拿来用用:)
安装
ruby script/plugin install http://ajaxpaginate.googlecode.com/svn/trunk/ajax_paginate
再将原来的will_paginate替换成ajax_paginate就可以了:)
<div class="pages">
<%= ajax_paginate @exceptions, :before => %(Element.show('activity')), :success => %(Element.hide('activity')) %>
</div>
如果你愿意的话,可以再加上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]