class Loggem::Logger

Attributes

context[R]
formatter[R]
logger[R]

Public Class Methods

new(logger = ::Logger.new(STDOUT)) click to toggle source
# File lib/loggem/logger.rb, line 11
def initialize(logger = ::Logger.new(STDOUT))
  @logger = logger
  @context = {}
  @formatter = ::Loggem::Formatters::Json.new
end

Public Instance Methods

formatter=(formatter) click to toggle source
# File lib/loggem/logger.rb, line 19
def formatter=(formatter)
  raise ArgumentError.new("Formatter must respond to 'call'") unless formatter.respond_to?(:call)

  @formatter = formatter
end
method_missing(method, *arguments) click to toggle source
# File lib/loggem/logger.rb, line 39
def method_missing(method, *arguments)
  logger.public_send method, *arguments
end

Private Instance Methods

build_event(level, message, payload) click to toggle source
# File lib/loggem/logger.rb, line 57
def build_event(level, message, payload)
  ::Loggem::Event.new(level: level,
                      message: message,
                      payload: payload,
                      context: context).data
end
log(level, message, payload) click to toggle source
# File lib/loggem/logger.rb, line 51
def log(level, message, payload)
  logger.public_send level, formatter.call(build_event(level, message, payload))
end