Sha256: 6d536f7e97d5d954497e46539dc98ced592086ca401516485c3025c396f30d80
Contents?: true
Size: 1.04 KB
Versions: 3
Compression:
Stored size: 1.04 KB
Contents
require 'semlogr/component_registry' require 'semlogr/enrichers/aggregate' require 'semlogr/sinks/aggregate' require 'semlogr/sinks/filtering' module Semlogr class LoggerConfiguration def initialize @min_severity = LogSeverity::DEBUG @enrichers = [] @filters = [] @sinks = [] end def log_at(severity) @min_severity = LogSeverity.create(severity) end def filter(filter) @filters << filter end def enrich_with(enricher, *params) enricher = ComponentRegistry.resolve(:enricher, enricher, *params) if enricher.is_a?(Symbol) @enrichers << enricher end def write_to(sink, *params) sink = ComponentRegistry.resolve(:sink, sink, *params) if sink.is_a?(Symbol) @sinks << sink end def create_logger enricher = Enrichers::Aggregate.new(@enrichers) sink = Sinks::Aggregate.new(@sinks) sink = Sinks::Filtering.new(@filters, sink) if @filters.any? Logger.new( @min_severity, enricher, sink ) end end end
Version data entries
3 entries across 3 versions & 1 rubygems
Version | Path |
---|---|
semlogr-0.2.2 | lib/semlogr/logger_configuration.rb |
semlogr-0.2.1 | lib/semlogr/logger_configuration.rb |
semlogr-0.2.0 | lib/semlogr/logger_configuration.rb |