class Semlogr::Config::SinkConfig
Public Class Methods
new()
click to toggle source
# File lib/semlogr/config/sink_config.rb, line 11 def initialize @min_severity = LogSeverity::DEBUG @enrichers = [] @filters = [] end
Public Instance Methods
create_sink(sink, *params)
click to toggle source
# File lib/semlogr/config/sink_config.rb, line 30 def create_sink(sink, *params) if sink.is_a?(Symbol) sink = ComponentRegistry.resolve(:sink, sink, *params) end if @min_severity > LogSeverity::DEBUG severity_filter = ->(log_event) { log_event.severity < @min_severity } @filters.unshift(severity_filter) end sink = Sinks::Filtering.new(@filters, sink) if @filters.any? sink = Sinks::Enriching.new(@enrichers, sink) if @enrichers.any? sink end
emit_at(severity)
click to toggle source
# File lib/semlogr/config/sink_config.rb, line 17 def emit_at(severity) @min_severity = LogSeverity.create(severity) end
enrich_with(enricher, *params)
click to toggle source
# File lib/semlogr/config/sink_config.rb, line 25 def enrich_with(enricher, *params) enricher = resolve_enricher(enricher, params) @enrichers << enricher end
filter(filter)
click to toggle source
# File lib/semlogr/config/sink_config.rb, line 21 def filter(filter) @filters << filter end
Private Instance Methods
resolve_enricher(enricher, params)
click to toggle source
# File lib/semlogr/config/sink_config.rb, line 47 def resolve_enricher(enricher, params) return enricher unless enricher.is_a?(Symbol) ComponentRegistry.resolve(:enricher, enricher, *params) end