class Semlogr::Sinks::Filtering

Public Class Methods

new(filters, sink) click to toggle source
# File lib/semlogr/sinks/filtering.rb, line 8
def initialize(filters, sink)
  @filters = filters
  @sink = sink
end

Public Instance Methods

emit(log_event) click to toggle source
# File lib/semlogr/sinks/filtering.rb, line 13
def emit(log_event)
  filtered = @filters.any? do |filter|
    begin
      filter.call(log_event)
    rescue StandardError => e
      SelfLogger.error("Failed to filter log event using filter #{filter.class}", e)

      false
    end
  end

  @sink.emit(log_event) unless filtered
end