class Pepys::Formatter

Constants

FORMAT_VERSION
LEVEL_MAPPINGS

Attributes

logger[RW]

Public Class Methods

new(logger) click to toggle source
# File lib/pepys/formatter.rb, line 19
def initialize(logger)
  self.logger = logger
end

Public Instance Methods

call(level, timestamp, name, message) click to toggle source
# 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

Private Instance Methods

level_number(name) click to toggle source
# File lib/pepys/formatter.rb, line 41
def level_number(name)
  # Defaults to INFO if unknown
  LEVEL_MAPPINGS.fetch(name, 30)
end