Sha256: ae1fe5daa74c61571273fab7b71c24f7f03504e9625840ce34a665a5d8ec5d18
Contents?: true
Size: 1.8 KB
Versions: 1
Compression:
Stored size: 1.8 KB
Contents
module Ixtlan class UserLogger def initialize(arg) @logger = Slf4r::LoggerFacade.new(arg) end private def login_from(controller) user = controller.respond_to?(:current_user) ? controller.send(:current_user) : nil user.nil? ? nil: user.login end public def log(controller, message = nil, &block) log_user(login_from(controller), message, &block) end def log_action(controller, message = nil) log_user(login_from(controller)) do as_xml = controller.response.content_type == 'application/xml' ? " - xml" : "" if controller.params[:controller] audits = controller.instance_variable_get("@#{controller.params[:controller].to_sym}") if(audits) "#{controller.params[:controller]}##{controller.params[:action]} #{audits.model.to_s.plural}[#{audits.size}]#{as_xml}#{message}" else audit = controller.instance_variable_get("@#{controller.params[:controller].singular.to_sym}") if(audit) errors = if(audit.respond_to?(:errors) && !audit.errors.empty?) " - errors: " + audit.errors.full_messages.join(", ") end audit_log = audit.respond_to?(:to_log) ? audit.to_log : "#{audit.model}(#{audit.key})" "#{controller.params[:controller]}##{controller.params[:action]} #{audit_log}#{as_xml}#{message}#{errors}" else "#{controller.params[:controller]}##{controller.params[:action]}#{as_xml}#{message}" end end else "params=#{controller.params.inspect}#{message}" end end end def log_user(user, message = nil, &block) user ||= "???" @logger.info {"[#{user}] #{message}#{block.call if block}" } end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
ixtlan-0.4.0.pre3 | lib/ixtlan/user_logger.rb |