module SubZero::Loggable
Constants
- COLORS
- SEVERITIES
- SEVERITY_COLORS
Public Class Methods
included(base)
click to toggle source
# File lib/sub_zero/loggable.rb, line 31 def self.included(base) base.extend self end
Public Instance Methods
error(exception, message)
click to toggle source
Calls superclass method
# File lib/sub_zero/loggable.rb, line 19 def error exception, message super message, error: exception end
log(message, context = {})
click to toggle source
# File lib/sub_zero/loggable.rb, line 23 def log message, context = {} sender_class = self.kind_of?(Class) ? self : self.class context.merge! sender_class: sender_class.to_s context[:severity] ||= :info puts log_colored_message(message, context) end
Private Instance Methods
log_colored_message(message, context)
click to toggle source
# File lib/sub_zero/loggable.rb, line 37 def log_colored_message(message, context) msg = log_colored_severity(context[:severity]) msg << " #{Time.now.strftime('%Y%m%d%H%M%S%L')}" if sender_class = context.delete(:sender_class) msg = log_colored_term(sender_class) end msg << " #{message}" end
log_colored_severity(severity)
click to toggle source
# File lib/sub_zero/loggable.rb, line 48 def log_colored_severity(severity) severity.to_s.colorize SEVERITY_COLORS[severity.to_sym] end
log_colored_term(term)
click to toggle source
# File lib/sub_zero/loggable.rb, line 52 def log_colored_term(term) index = Integer("0x#{Digest::MD5.hexdigest(term)[0, 2]}") % 12 term.colorize COLORS[index] end