require "rubygems"
require "cabin"
require "logger"
def fib(n)
return 1 if n < 2
return fib(n - 1) + fib(n - 2)
end
# Logging::... is something I'm implemented and experimenting with.
@logger = Cabin::Channel.new
# A logging channel can have any number of subscribers.
# Any subscriber is simply expected to respond to '<<' and take a single
# argument (the event)
# Special case of stdlib Logger instances that are wrapped smartly to
# log JSON and call the right Logger method (Logger#info, etc).
@logger.subscribe(Logger.new(STDOUT))
# You can store arbitrary key-value pairs in the logging channel.
# These are emitted with every event.
n = 35
@logger[:input] = n
@logger.time("fibonacci latency") do
fib(n)
end