Class: Semlogr::Config::SinkConfig
- Inherits:
-
Object
- Object
- Semlogr::Config::SinkConfig
- Defined in:
- lib/semlogr/config/sink_config.rb
Instance Method Summary collapse
- #create_sink(sink, *params) ⇒ Object
- #emit_at(severity) ⇒ Object
- #enrich_with(enricher, *params) ⇒ Object
- #filter(filter) ⇒ Object
-
#initialize ⇒ SinkConfig
constructor
A new instance of SinkConfig.
Constructor Details
#initialize ⇒ SinkConfig
Returns a new instance of SinkConfig.
11 12 13 14 15 |
# File 'lib/semlogr/config/sink_config.rb', line 11 def initialize @min_severity = LogSeverity::DEBUG @enrichers = [] @filters = [] end |
Instance Method Details
#create_sink(sink, *params) ⇒ Object
30 31 32 33 34 35 36 37 38 39 40 41 42 43 |
# 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) ⇒ Object
17 18 19 |
# File 'lib/semlogr/config/sink_config.rb', line 17 def emit_at(severity) @min_severity = LogSeverity.create(severity) end |
#enrich_with(enricher, *params) ⇒ Object
25 26 27 28 |
# File 'lib/semlogr/config/sink_config.rb', line 25 def enrich_with(enricher, *params) enricher = resolve_enricher(enricher, params) @enrichers << enricher end |
#filter(filter) ⇒ Object
21 22 23 |
# File 'lib/semlogr/config/sink_config.rb', line 21 def filter(filter) @filters << filter end |