Sha256: 79a609934b94edafcc4e9a5c3adcf7f9fd2b133b6c2151063e77b949450f4218

Contents?: true

Size: 723 Bytes

Versions: 3

Compression:

Stored size: 723 Bytes

Contents

module Timber
  module LogDevices
    # @private
    #
    # A log device that writes to multiple IO devices.
    #
    # Note, you should not have to instantiate this class directly. Simply pass multiple
    # arguments to the `Timber::Logger#new` method.
    #
    # See the {Timber::Logger#new} for examples.
    class Multi
      def initialize(targets)
        @targets = targets
      end

      def write(*args)
        @targets.each { |t| t.write(*args) }
        @targets.first
      end

      def sync=(value)
        @targets.each do |t|
          if t.respond_to?(:sync=)
            t.sync = value
          end
        end
      end

      def close
        @targets.each(&:close)
      end
    end
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
timber-2.1.4 lib/timber/log_devices/multi.rb
timber-2.1.3 lib/timber/log_devices/multi.rb
timber-2.1.2 lib/timber/log_devices/multi.rb