Rack::Bug为Rack应用添加一个诊断工具栏。启用后,它会注入一个浮动的div,允许浏览日志、数据库查询、模板渲染时间等。
script/plugin install git://github.com/brynary/rack-bug.git
在config/environments/development.rb中,添加:
config.middleware.use "Rack::Bug",
:secret_key => "someverylongandveryhardtoguesspreferablyrandomstring"
将书签小工具添加到浏览器中:
open http://RAILS_APP/__rack_bug__/bookmarklet.html
像任何其他中间件一样使用Rack::Bug。有关示例Sinatra应用,请参见spec/fixtures文件夹中的SampleApp。
如果希望使用日志面板,请定义LOGGER常量,该常量为Ruby Logger或ActiveSupport::BufferedLogger。
指定你想要的的面板集合,以及它们出现的顺序:
require "rack/bug"
ActionController::Dispatcher.middleware.use Rack::Bug,
:secret_key => "someverylongandveryhardtoguesspreferablyrandomstring",
:panel_classes => [
Rack::Bug::TimerPanel,
Rack::Bug::RequestVariablesPanel,
Rack::Bug::RedisPanel,
Rack::Bug::TemplatesPanel,
Rack::Bug::LogPanel,
Rack::Bug::MemoryPanel
]
我们发现Rack::Bug足够快,可以用于特定的故障排查工作在生产环境中运行。
将中间件配置添加到初始化程序或适当的环境文件中,同时考虑本节其余部分。
限制访问特定IP地址:
require "ipaddr"
ActionController::Dispatcher.middleware.use "Rack::Bug"
:secret_key => "someverylongandveryhardtoguesspreferablyrandomstring",
:ip_masks => [IPAddr.new("2.2.2.2/0")]
使用密码限制访问:
ActionController::Dispatcher.middleware.use "Rack::Bug",
:secret_key => "someverylongandveryhardtoguesspreferablyrandomstring",
:password => "yourpassword"
Rack::Bug的灵感主要来自Django调试工具栏。其他灵感来自Rails footnotes、Rack的ShowException中间件、Oink和Rack::Cache。
感谢Weplay.com支持Rack::Bug的开发。
为了进行开发,你需要安装以下gem:rspec, rack-test, webrat, sinatra。
参见本目录中的MIT-LICENSE.txt。