semlogr/semlogr

View on GitHub
lib/semlogr/sinks/enriching.rb

Summary

Maintainability
A
0 mins
Test Coverage
# frozen_string_literal: true

require 'semlogr/self_logger'

module Semlogr
  module Sinks
    class Enriching
      def initialize(enrichers, sink)
        @enrichers = enrichers
        @sink = sink
      end

      def emit(log_event)
        @enrichers.each do |enricher|
          begin
            enricher.enrich(log_event)
          rescue StandardError => e
            SelfLogger.error("Failed to enrich log event using enricher #{enricher.class}", e)
          end
        end

        @sink.emit(log_event)
      end
    end
  end
end