Class: Code0::ZeroTrack::Logs::JsonFormatter

Inherits:
Logger::Formatter
  • Object
show all
Defined in:
lib/code0/zero_track/logs/json_formatter.rb

Direct Known Subclasses

Tagged

Defined Under Namespace

Classes: Tagged

Instance Method Summary collapse

Instance Method Details

#call(severity, datetime, _progname, message) ⇒ Object



7
8
9
# File 'lib/code0/zero_track/logs/json_formatter.rb', line 7

def call(severity, datetime, _progname, message)
  JSON.generate(data(severity, datetime, message)) << "\n"
end

#chomp(message) ⇒ Object



26
27
28
29
30
# File 'lib/code0/zero_track/logs/json_formatter.rb', line 26

def chomp(message)
  message.chomp! until message.chomp == message

  message.strip
end

#data(severity, datetime, message) ⇒ Object



11
12
13
14
15
16
17
18
19
20
21
22
23
24
# File 'lib/code0/zero_track/logs/json_formatter.rb', line 11

def data(severity, datetime, message)
  data = {}
  data[:severity] = severity
  data[:time] = datetime.utc.iso8601(3)

  case message
  when String
    data[:message] = chomp message
  when Hash
    data.merge!(message)
  end

  data.merge!(Code0::ZeroTrack::Context.current.to_h)
end