require "rubygems"
require "sinatra"
$: << "./lib"
require "cabin"
require "logger"
$logger = Cabin::Channel.new
$logger.subscribe(Logger.new(STDOUT))
def serve_it_up(arg)
$logger.info("Serving it up")
sleep 2
"Hello, #{arg}!"
end
get "/hello/:name" do
context = $logger.context
context[:name] = params[:name]
context[:verb] = "GET"
timer = $logger.time("serve_it_up latency")
result = serve_it_up(params[:name])
timer.stop
# Clear the context so that the next request doesn't have tainted context.
context.clear
return result
end