Class: GetaroundUtils::LogFormatters::DeepKeyValue

Inherits:
Utils::DeepKeyValueSerializer show all
Defined in:
lib/getaround_utils/log_formatters/deep_key_value.rb

Defined Under Namespace

Modules: Lograge, Sidekiq

Class Method Summary collapse

Instance Method Summary collapse

Methods inherited from Utils::DeepKeyValueSerializer

#flattify, #initialize, #serialize

Constructor Details

This class inherits a constructor from GetaroundUtils::Utils::DeepKeyValueSerializer

Class Method Details

.for_logrageObject



29
30
31
# File 'lib/getaround_utils/log_formatters/deep_key_value.rb', line 29

def self.for_lograge
  new.extend(Lograge)
end

.for_sidekiqObject



50
51
52
# File 'lib/getaround_utils/log_formatters/deep_key_value.rb', line 50

def self.for_sidekiq
  new.extend(Sidekiq)
end

Instance Method Details

#call(severity, _datetime, appname, message) ⇒ Object



17
18
19
20
# File 'lib/getaround_utils/log_formatters/deep_key_value.rb', line 17

def call(severity, _datetime, appname, message)
  payload = { severity: severity, appname: appname }
  "#{normalize(payload)} #{normalize(message)}\n"
end

#normalize(message) ⇒ Object



7
8
9
10
11
12
13
14
15
# File 'lib/getaround_utils/log_formatters/deep_key_value.rb', line 7

def normalize(message)
  if message.is_a?(Hash)
    serialize(message.compact)
  elsif message.is_a?(String) && message.match(/^[^ =]+=/)
    message
  else
    serialize(message: message.to_s)
  end
end