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