Module: GetaroundUtils::Mixins::Loggable

Defined in:
lib/getaround_utils/mixins/loggable.rb

Instance Method Summary collapse

Instance Method Details

#base_append_infos_to_loggable(payload) ⇒ Object



10
11
12
13
14
15
# File 'lib/getaround_utils/mixins/loggable.rb', line 10

def base_append_infos_to_loggable(payload)
  payload[:origin] = class_name
  return unless respond_to?(:append_infos_to_loggable)

  append_infos_to_loggable(payload)
end

#base_loggable_loggerObject



17
18
19
20
21
22
23
24
25
# File 'lib/getaround_utils/mixins/loggable.rb', line 17

def base_loggable_logger
  @base_loggable_logger ||= if respond_to?(:logger)
    logger
  elsif defined?(Rails)
    Rails.logger
  else
    Logger.new(STDOUT)
  end
end

#class_nameObject



6
7
8
# File 'lib/getaround_utils/mixins/loggable.rb', line 6

def class_name
  @class_name ||= is_a?(Class) ? name : self.class.name
end

#loggable(severity, message, payload = {}) ⇒ Object



31
32
33
34
35
36
37
# File 'lib/getaround_utils/mixins/loggable.rb', line 31

def loggable(severity, message, payload = {})
  payload = { message: message }.merge(payload)
  base_append_infos_to_loggable(payload)

  message = loggable_formatter.serialize(payload.compact)
  base_loggable_logger.send(severity.to_sym, message)
end

#loggable_formatterObject



27
28
29
# File 'lib/getaround_utils/mixins/loggable.rb', line 27

def loggable_formatter
  @loggable_formatter ||= GetaroundUtils::Utils::DeepKeyValueSerializer.new
end