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) serializer = Warden::SessionSerializer.new(env) Devise.mappings.keys.map do |scope| key = serializer.key_for(scope) if session_data = serializer.session[key] ["current #{scope}", session_data[1]].join(": ") end end.compact end def logger Rails.logger end end end