Sha256: 6635fcb116d1c5a4c18165d268141c3fbc0ac5ba2a54e850bc1013b522704d00

Contents?: true

Size: 1001 Bytes

Versions: 2

Compression:

Stored size: 1001 Bytes

Contents

# frozen_string_literals: true

module Lumberjack
  class Device
    # This is a logging device that forward log entries to multiple other devices.
    class Multi < Device
      # @param [Array<Lumberjack::Device>] devices The devices to write to.
      def initialize(*devices)
        @devices = devices.flatten
      end

      def write(entry)
        @devices.each do |device|
          device.write(entry)
        end
      end

      def flush
        @devices.each do |device|
          device.flush
        end
      end

      def close
        @devices.each do |device|
          device.close
        end
      end

      def reopen(logdev = nil)
        @devices.each do |device|
          device.reopen(logdev = nil)
        end
      end

      def datetime_format
        @devices.detect(&:datetime_format).datetime_format
      end

      def datetime_format=(format)
        @devices.each do |device|
          device.datetime_format = format
        end
      end
    end
  end
end

Version data entries

2 entries across 2 versions & 2 rubygems

Version Path
honeybadger-5.3.0 vendor/bundle/ruby/3.2.0/gems/lumberjack-1.2.9/lib/lumberjack/device/multi.rb
lumberjack-1.2.9 lib/lumberjack/device/multi.rb