module Devise class TaggedLogging def initialize(app) @app = app end def call(env) if logger.respond_to?(:tagged) logger.tagged(compute_devise_tags(env)) { @app.call(env) } else @app.call(env) end end private def compute_devise_tags(env) warden = env['warden'] Devise.mappings.keys.map do |scope| if record = warden.user(scope: scope) ["current #{scope}", record.to_key].join(": ") end end.compact end def logger Rails.logger end end end