Class: Semlogr::Config::LoggerConfig

Inherits:
Object
  • Object
show all
Defined in:
lib/semlogr/config/logger_config.rb

Instance Method Summary collapse

Constructor Details

#initializeLoggerConfig

Returns a new instance of LoggerConfig.



14
15
16
17
18
19
# File 'lib/semlogr/config/logger_config.rb', line 14

def initialize
  @min_severity = LogSeverity::DEBUG
  @enrichers = []
  @filters = []
  @sinks = []
end

Instance Method Details

#create_loggerObject



41
42
43
44
45
46
47
# File 'lib/semlogr/config/logger_config.rb', line 41

def create_logger
  sink = Sinks::Aggregate.new(@sinks)
  sink = Sinks::Filtering.new(@filters, sink) if @filters.any?
  sink = Sinks::Enriching.new(@enrichers, sink) if @enrichers.any?

  Logger.new(@min_severity, sink)
end

#enrich_with(enricher, *params) ⇒ Object



29
30
31
32
# File 'lib/semlogr/config/logger_config.rb', line 29

def enrich_with(enricher, *params)
  enricher = resolve_enricher(enricher, params)
  @enrichers << enricher
end

#filter(filter) ⇒ Object



25
26
27
# File 'lib/semlogr/config/logger_config.rb', line 25

def filter(filter)
  @filters << filter
end

#log_at(severity) ⇒ Object



21
22
23
# File 'lib/semlogr/config/logger_config.rb', line 21

def log_at(severity)
  @min_severity = LogSeverity.create(severity)
end

#write_to(sink, *params) {|sink_config| ... } ⇒ Object

Yields:

  • (sink_config)


34
35
36
37
38
39
# File 'lib/semlogr/config/logger_config.rb', line 34

def write_to(sink, *params)
  sink_config = SinkConfig.new
  yield(sink_config) if block_given?

  @sinks << sink_config.create_sink(sink, *params)
end