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
他のミドルウェアと同様に 'use Rack::Bug' として使用します。Sinatraアプリの例については spec/fixtures フォルダ内の SampleApp を参照してください。
ロガーパネルを使用する場合は、ruby Logger または ActiveSupport::BufferedLogger である LOGGER 定数を定義してください。
表示させたいパネルのセットを、表示順に指定します:
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から得ました。
Rack::Bugの開発を支援してくれたWeplay.comに感謝します。
開発には、以下のgemをインストールする必要があります: rspec, rack-test, webrat, sinatra
このディレクトリ内のMIT-LICENSE.txtを参照してください。