class Logged::Rack::Logger
Handle tagged logging much like Rails::Rack::Logger
Public Class Methods
new(app)
click to toggle source
# File lib/logged/rack/logger.rb, line 10 def initialize(app) @app = app end
Public Instance Methods
call(env)
click to toggle source
# File lib/logged/rack/logger.rb, line 14 def call(env) Thread.current[:logged_request_env] = env request = ActionDispatch::Request.new(env) if !loggers.empty? loggers_tagged(loggers, request) { @app.call(env) } else @app.call(env) end ensure Thread.current[:logged_request_env] = nil end
Private Instance Methods
dummy_tagged() { || ... }
click to toggle source
# File lib/logged/rack/logger.rb, line 53 def dummy_tagged yield end
loggers()
click to toggle source
# File lib/logged/rack/logger.rb, line 30 def loggers @loggers ||= Logged.components.map { |c| Logged.logger_by_component(c) }.compact.uniq end
loggers_tagged(loggers, request) { || ... }
click to toggle source
# File lib/logged/rack/logger.rb, line 34 def loggers_tagged(loggers, request, &block) logger = loggers.shift tags = tags_for_component(logger.component, request) if !loggers.empty? tagged_block(logger, tags) { loggers_tagged(loggers, request, &block) } else tagged_block(logger, tags) { yield } end end
tagged_block(logger, tags, &block)
click to toggle source
# File lib/logged/rack/logger.rb, line 45 def tagged_block(logger, tags, &block) if logger.respond_to?(:tagged) logger.tagged(*tags, &block) else dummy_tagged(&block) end end