class Lenjador

Constants

SEV_LABEL
Severity

Public Class Methods

build(service_name, logger_config, preprocessors_config = {}) click to toggle source
# File lib/lenjador.rb, line 13
def self.build(service_name, logger_config, preprocessors_config = {})
  logger_config ||= {}

  preprocessors = preprocessors_config.map do |type, arguments|
    Preprocessors.get(type.to_s, arguments || {})
  end
  adapter = Adapters.get(service_name, logger_config)
  level = SEV_LABEL.index(logger_config.fetch(:level, 'debug'))

  new(adapter, level, preprocessors)
end
new(adapter, level, preprocessors) click to toggle source
# File lib/lenjador.rb, line 25
def initialize(adapter, level, preprocessors)
  @adapter = adapter
  @level = level
  @preprocessors = preprocessors
end

Public Instance Methods

debug(*args, &block) click to toggle source
# File lib/lenjador.rb, line 31
def debug(*args, &block)
  log(Severity::DEBUG, *args, &block)
end
debug?() click to toggle source
# File lib/lenjador.rb, line 51
def debug?; @level <= Severity::DEBUG; end
error(*args, &block) click to toggle source
# File lib/lenjador.rb, line 43
def error(*args, &block)
  log(Severity::ERROR, *args, &block)
end
error?() click to toggle source
# File lib/lenjador.rb, line 57
def error?; @level <= Severity::ERROR; end
fatal(*args, &block) click to toggle source
# File lib/lenjador.rb, line 47
def fatal(*args, &block)
  log(Severity::FATAL, *args, &block)
end
fatal?() click to toggle source
# File lib/lenjador.rb, line 59
def fatal?; @level <= Severity::FATAL; end
info(*args, &block) click to toggle source
# File lib/lenjador.rb, line 35
def info(*args, &block)
  log(Severity::INFO, *args, &block)
end
info?() click to toggle source
# File lib/lenjador.rb, line 53
def info?; @level <= Severity::INFO; end
level=(new_level) click to toggle source
# File lib/lenjador.rb, line 61
def level=(new_level)
  raise ArgumentError, "invalid log level: #{new_level}" unless new_level.is_a?(Integer)

  @level = new_level
end
warn(*args, &block) click to toggle source
# File lib/lenjador.rb, line 39
def warn(*args, &block)
  log(Severity::WARN, *args, &block)
end
warn?() click to toggle source
# File lib/lenjador.rb, line 55
def warn?; @level <= Severity::WARN; end

Private Instance Methods

log(level, *args, &block) click to toggle source
# File lib/lenjador.rb, line 69
def log(level, *args, &block)
  return true if level < @level

  data = parse_log_data(*args, &block)
  processed_data = preprocess(data)

  @adapter.log(level, processed_data)
end
parse_log_data(message = nil, metadata = {}) { |: message)| ... } click to toggle source
# File lib/lenjador.rb, line 84
def parse_log_data(message = nil, metadata = {}, &block)
  return message if message.is_a?(Hash)

  (metadata || {}).merge(message: block ? yield : message)
end
preprocess(data) click to toggle source
# File lib/lenjador.rb, line 78
def preprocess(data)
  @preprocessors.inject(data) do |data_to_process, preprocessor|
    preprocessor.process(data_to_process)
  end
end