
Barra de ferramentas de depuração para aplicações Rack implementada como middleware
O Rack::Bug adiciona uma barra de ferramentas de diagnóstico a aplicativos Rack. Quando ativado, ele injeta uma div flutuante que permite explorar logs, consultas ao banco de dados, tempos de renderização de templates, etc.
script/plugin install git://github.com/brynary/rack-bug.git
Em config/environments/development.rb, adicione:
config.middleware.use "Rack::Bug",
:secret_key => "someverylongandveryhardtoguesspreferablyrandomstring"
Adicione o bookmarklet ao seu navegador:
open http://RAILS_APP/__rack_bug__/bookmarklet.html
Apenas use 'Rack::Bug' como qualquer outro middleware. Consulte o SampleApp na pasta spec/fixtures para um exemplo de aplicativo Sinatra.
Se você deseja usar o painel de log, defina a constante LOGGER como um Logger ruby ou ActiveSupport::BufferedLogger
Especifique o conjunto de painéis desejado, na ordem em que deseja que apareçam:
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
]
Descobrimos que o Rack::Bug é rápido o suficiente para ser executado em produção para esforços específicos de solução de problemas.
Adicione a configuração do middleware a um inicializador ou aos arquivos de ambiente apropriados, levando em consideração o restante desta seção.
Restrinja o acesso a endereços IP específicos:
require "ipaddr"
ActionController::Dispatcher.middleware.use "Rack::Bug"
:secret_key => "someverylongandveryhardtoguesspreferablyrandomstring",
:ip_masks => [IPAddr.new("2.2.2.2/0")]
Restrinja o acesso usando uma senha:
ActionController::Dispatcher.middleware.use "Rack::Bug",
:secret_key => "someverylongandveryhardtoguesspreferablyrandomstring",
:password => "yourpassword"
A inspiração para o Rack::Bug veio principalmente da barra de ferramentas de depuração do Django. Ideias adicionais dos footnotes do Rails, middleware ShowException do Rack, Oink e Rack::Cache
Agradecemos à Weplay.com por apoiar o desenvolvimento do Rack::Bug
Para desenvolvimento, você precisará instalar as seguintes gems: rspec, rack-test, webrat, sinatra
Consulte MIT-LICENSE.txt neste diretório.