Class: Ixtlan::Audit::UserLogger
- Inherits:
-
Object
- Object
- Ixtlan::Audit::UserLogger
- Includes:
- Slf4r::Logger
- Defined in:
- lib/ixtlan/audit/user_logger.rb
Instance Method Summary collapse
-
#initialize(audit_manager) ⇒ UserLogger
constructor
A new instance of UserLogger.
- #log(controller, message = nil, &block) ⇒ Object
- #log_action(controller, message = nil) ⇒ Object
- #log_user(user, message = nil, &block) ⇒ Object
- #logger ⇒ Object
Constructor Details
#initialize(audit_manager) ⇒ UserLogger
Returns a new instance of UserLogger.
34 35 36 |
# File 'lib/ixtlan/audit/user_logger.rb', line 34 def initialize(audit_manager) @manager = audit_manager end |
Instance Method Details
#log(controller, message = nil, &block) ⇒ Object
47 48 49 |
# File 'lib/ixtlan/audit/user_logger.rb', line 47 def log(controller, = nil, &block) log_user(login_from(controller), , &block) end |
#log_action(controller, message = nil) ⇒ Object
51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 |
# File 'lib/ixtlan/audit/user_logger.rb', line 51 def log_action(controller, = nil) log_user(login_from(controller)) do if controller.params[:controller] clname = controller.params[:controller] cname = clname.sub(/^.*\//, '') audits = controller.instance_variable_get("@#{cname}") if(audits && audits.respond_to?(:collect)) "#{clname}##{controller.params[:action]} #{cname.classify}[#{audits.size}]#{}" else audit = audits || controller.instance_variable_get("@#{cname.singularize}") if(audit) errors = if(audit.respond_to?(:errors) && !audit.errors.empty?) " - errors: " + audit.errors..join(", ") end audit_log = if audit.respond_to?(:to_log) audit.to_log elsif audit.is_a? String audit elsif audit.respond_to?(:model) "#{audit.model}(#{audit.id})" else "#{audit.class.name}(#{audit.id})" end "#{clname}##{controller.params[:action]} #{audit_log}#{}#{errors}" else "#{clname}##{controller.params[:action]}#{}" end end else "params=#{controller.params.inspect}#{}" end end end |
#log_user(user, message = nil, &block) ⇒ Object
85 86 87 88 89 90 |
# File 'lib/ixtlan/audit/user_logger.rb', line 85 def log_user(user, = nil, &block) user ||= "???" msg = "#{}#{block.call if block}" @manager.push( user, '', msg.sub(/\ .*$/, ''), msg.sub(/^[^\ ]*\ /, '') ) logger.debug {"[#{user}] #{msg}" } end |
#logger ⇒ Object
29 30 31 |
# File 'lib/ixtlan/audit/user_logger.rb', line 29 def logger @logger ||= Logger.new( STDOUT ) end |