Class: AwsSqsMoniter::Logging::Formatter

Inherits:
Logger::Formatter
  • Object
show all
Defined in:
lib/aws_sqs_moniter/logging.rb

Instance Method Summary collapse

Instance Method Details

#call(severity, time, _program_name, message) ⇒ Object



6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
# File 'lib/aws_sqs_moniter/logging.rb', line 6

def call severity, time, _program_name, message
  data_hash = message.is_a?(Hash) ? message : { message: message }
  error_hash = {}

  %i(timestamp pid thread severity).each { |key| data_hash.delete key }

  if (error_object = data_hash.delete(:error))
    error_hash[:error] = error_object.to_s
    error_hash[:backtrace] = format_backtrace(error_object.backtrace) if error_object.backtrace
  end

  timestamp = time.utc.iso8601
  severity = severity.downcase
  data = format_hash data_hash
  error = format_hash error_hash
  text = %(timestamp="#{timestamp}" pid="#{pid}" thread="#{thread}" severity="#{severity}" #{data} #{error}).strip

  "#{text}\n"
end