Class: Pepys::Formatter

Inherits:
Object
  • Object
show all
Defined in:
lib/pepys/formatter.rb

Constant Summary collapse

LEVEL_MAPPINGS =
{
  "FATAL".freeze => 60,
  "ERROR".freeze => 50,
  "WARN" .freeze => 40,
  "INFO" .freeze => 30,
  "DEBUG".freeze => 20,
  # "TRACE" => 10,
}.freeze
FORMAT_VERSION =
0

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(logger) ⇒ Formatter

Returns a new instance of Formatter.



19
20
21
# File 'lib/pepys/formatter.rb', line 19

def initialize(logger)
  self.logger = logger
end

Instance Attribute Details

#loggerObject

Returns the value of attribute logger.



17
18
19
# File 'lib/pepys/formatter.rb', line 17

def logger
  @logger
end

Instance Method Details

#call(level, timestamp, name, message) ⇒ Object



23
24
25
26
27
28
29
30
31
32
33
34
35
# File 'lib/pepys/formatter.rb', line 23

def call(level, timestamp, name, message)
  data = logger.base_fields.merge(
    level: level_number(level),
    time: timestamp.utc.iso8601,
    msg: message,
    v: FORMAT_VERSION,
  )

  # Only override the default name if we have a value
  data[:name] = name if name

  JSON.dump(data) + "\n"
end