1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38
|
require "logger"
require_relative "core"
require_relative "logging-observer"
module Rack::Timeout::Logger
extend self
attr :device, :level, :logger
def device=(new_device)
update(new_device, level)
end
def level=(new_level)
update(device, new_level)
end
def logger=(new_logger)
@logger = @observer.logger = new_logger
end
def init
@observer = ::Rack::Timeout::StateChangeLoggingObserver.new
::Rack::Timeout.register_state_change_observer(:logger, &@observer.callback)
@inited = true
end
def disable
@observer, @logger, @level, @device, @inited = nil
::Rack::Timeout.unregister_state_change_observer(:logger)
end
def update(new_device, new_level)
init unless @inited
@device = new_device || $stderr
@level = new_level || ::Logger::INFO
self.logger = ::Rack::Timeout::StateChangeLoggingObserver.mk_logger(device, level)
end
end
|