Class: EffectiveLogger
- Inherits:
-
Object
- Object
- EffectiveLogger
- Defined in:
- app/models/effective_logger.rb
Overview
Call EffectiveLog.info or EffectiveLog.success EffectiveLog.error
Class Method Summary collapse
Class Method Details
.log(message, status = EffectiveLogging.statuses.first, options = {}) ⇒ Object
6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 |
# File 'app/models/effective_logger.rb', line 6 def self.log(, status = EffectiveLogging.statuses.first, = {}) return if EffectiveLogging.supressed? = Hash().delete_if { |k, v| v.blank? } if [:user].present? && ![:user].class.name.end_with?('User') raise ArgumentError.new('Log.log :user => ... argument must be a User object') end if [:associated].present? && ![:associated].kind_of?(ActiveRecord::Base) raise ArgumentError.new('Log.log :associated => ... argument must be an ActiveRecord::Base object') end if [:request].present? && [:request].respond_to?(:referrer) request = .delete(:request) [:ip] ||= request.ip [:referrer] ||= request.referrer [:user_agent] ||= request.user_agent end log = EffectiveLogging.Log.new( message: , status: status, user_id: .delete(:user_id), user_type: .delete(:user_type), user: .delete(:user), associated: .delete(:associated), associated_to_s: .delete(:associated_to_s), details: ) if log.associated.present? log.associated_to_s ||= log.associated.to_s end log.save! log end |