Module: GetaroundUtils::Mixins::Loggable

Included in:
Utils::AsyncQueue, Utils::HttpReporter
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.nil?
    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



27
28
29
30
31
32
33
# File 'lib/getaround_utils/mixins/loggable.rb', line 27

def loggable(severity, message, payload = {})
  base_loggable_logger.send(
    :warn,
    "Deprecated usage of GetaroundUtils::Mixins::Loggable#loggable(*args). Please use GetaroundUtils::Mixins::Loggable#loggable_log(*args) instead"
  )
  loggable_log(severity, message, payload)
end

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



35
36
37
38
39
40
41
# File 'lib/getaround_utils/mixins/loggable.rb', line 35

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

  message = GetaroundUtils::Utils::DeepKeyValue.serialize(payload.compact)
  base_loggable_logger.send(severity.to_sym, message)
end