Sha256: bc3c645f7d6f54b9f79b5910bceaa440e871470637176b92994dab0dc7151a61
Contents?: true
Size: 1.93 KB
Versions: 2
Compression:
Stored size: 1.93 KB
Contents
require 'semlogr/config/logger_config' require 'semlogr/log_severity' require 'semlogr/events/log_event' require 'semlogr/sinks/enriching' require 'semlogr/enrichers/property' module Semlogr class Logger def initialize(min_severity, sink) @min_severity = min_severity @sink = sink end def self.create config = Config::LoggerConfig.new yield(config) config.create_logger end def debug? @min_severity <= LogSeverity::DEBUG end def info? @min_severity <= LogSeverity::INFO end def warn? @min_severity <= LogSeverity::WARN end def error? @min_severity <= LogSeverity::ERROR end def fatal? @min_severity <= LogSeverity::FATAL end def debug(template = nil, **properties, &block) log(LogSeverity::DEBUG, template, properties, &block) end def info(template = nil, **properties, &block) log(LogSeverity::INFO, template, properties, &block) end def warn(template = nil, **properties, &block) log(LogSeverity::WARN, template, properties, &block) end def error(template = nil, **properties, &block) log(LogSeverity::ERROR, template, properties, &block) end def fatal(template = nil, **properties, &block) log(LogSeverity::FATAL, template, properties, &block) end def with_context(**properties) property_enricher = Enrichers::Property.new(properties) sink = Sinks::Enriching.new([property_enricher], @sink) Logger.new(@min_severity, sink) end private 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 end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
semlogr-0.3.0 | lib/semlogr/logger.rb |
semlogr-0.2.3 | lib/semlogr/logger.rb |