Class: Semlogr::LoggerConfiguration

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

Instance Method Summary collapse

Constructor Details

#initializeLoggerConfiguration

Returns a new instance of LoggerConfiguration.



8
9
10
11
12
13
# File 'lib/semlogr/logger_configuration.rb', line 8

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

Instance Method Details

#create_loggerObject



33
34
35
36
37
38
39
40
41
42
43
# File 'lib/semlogr/logger_configuration.rb', line 33

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

#enrich_with(enricher, *params) ⇒ Object



23
24
25
26
# File 'lib/semlogr/logger_configuration.rb', line 23

def enrich_with(enricher, *params)
  enricher = ComponentRegistry.resolve(:enricher, enricher, *params) if enricher.is_a?(Symbol)
  @enrichers << enricher
end

#filter(filter) ⇒ Object



19
20
21
# File 'lib/semlogr/logger_configuration.rb', line 19

def filter(filter)
  @filters << filter
end

#log_at(severity) ⇒ Object



15
16
17
# File 'lib/semlogr/logger_configuration.rb', line 15

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

#write_to(sink, *params) ⇒ Object



28
29
30
31
# File 'lib/semlogr/logger_configuration.rb', line 28

def write_to(sink, *params)
  sink = ComponentRegistry.resolve(:sink, sink, *params) if sink.is_a?(Symbol)
  @sinks << sink
end