class Semlogr::Logger

Public Class Methods

create() { |config| ... } click to toggle source
# File lib/semlogr/logger.rb, line 16
def self.create
  config = Config::LoggerConfig.new
  yield(config)

  config.create_logger
end
new(min_severity, sink) click to toggle source
# File lib/semlogr/logger.rb, line 11
def initialize(min_severity, sink)
  @min_severity = min_severity
  @sink = sink
end

Public Instance Methods

debug(template = nil, **properties, &block) click to toggle source
# File lib/semlogr/logger.rb, line 43
def debug(template = nil, **properties, &block)
  log(LogSeverity::DEBUG, template, properties, &block)
end
debug?() click to toggle source
# File lib/semlogr/logger.rb, line 23
def debug?
  @min_severity <= LogSeverity::DEBUG
end
error(template = nil, **properties, &block) click to toggle source
# File lib/semlogr/logger.rb, line 55
def error(template = nil, **properties, &block)
  log(LogSeverity::ERROR, template, properties, &block)
end
error?() click to toggle source
# File lib/semlogr/logger.rb, line 35
def error?
  @min_severity <= LogSeverity::ERROR
end
fatal(template = nil, **properties, &block) click to toggle source
# File lib/semlogr/logger.rb, line 59
def fatal(template = nil, **properties, &block)
  log(LogSeverity::FATAL, template, properties, &block)
end
fatal?() click to toggle source
# File lib/semlogr/logger.rb, line 39
def fatal?
  @min_severity <= LogSeverity::FATAL
end
info(template = nil, **properties, &block) click to toggle source
# File lib/semlogr/logger.rb, line 47
def info(template = nil, **properties, &block)
  log(LogSeverity::INFO, template, properties, &block)
end
info?() click to toggle source
# File lib/semlogr/logger.rb, line 27
def info?
  @min_severity <= LogSeverity::INFO
end
warn(template = nil, **properties, &block) click to toggle source
# File lib/semlogr/logger.rb, line 51
def warn(template = nil, **properties, &block)
  log(LogSeverity::WARN, template, properties, &block)
end
warn?() click to toggle source
# File lib/semlogr/logger.rb, line 31
def warn?
  @min_severity <= LogSeverity::WARN
end
with_context(**properties) click to toggle source
# File lib/semlogr/logger.rb, line 63
def with_context(**properties)
  property_enricher = Enrichers::Property.new(properties)
  sink = Sinks::Enriching.new([property_enricher], @sink)

  Logger.new(@min_severity, sink)
end

Private Instance Methods

log(severity, template, properties) { || ... } click to toggle source
# File lib/semlogr/logger.rb, line 72
def log(severity, template, properties, &block)
  return true if severity < @min_severity

  if block
    progname = template
    template, properties = yield

    properties ||= {}
    properties[:progname] = progname if progname
  end

  log_event = Events::LogEvent.create(severity, template, properties)
  @sink.emit(log_event)

  true
end