Sha256: af9a731389dad369efb2a315147356aa54315422cff04d5a7feace4d965f1a0e

Contents?: true

Size: 1.23 KB

Versions: 10

Compression:

Stored size: 1.23 KB

Contents

# frozen_string_literals: true

module Lumberjack
  # This is an abstract class for logging devices. Subclasses must implement the +write+ method and
  # may implement the +close+ and +flush+ methods if applicable.
  class Device
    require_relative "device/writer.rb"
    require_relative "device/log_file.rb"
    require_relative "device/rolling_log_file.rb"
    require_relative "device/date_rolling_log_file.rb"
    require_relative "device/size_rolling_log_file.rb"
    require_relative "device/multi.rb"
    require_relative "device/null.rb"

    # Subclasses must implement this method to write a LogEntry.
    def write(entry)
      raise NotImplementedError
    end
    
    # Subclasses may implement this method to close the device.
    def close
      flush
    end
    
    # Subclasses may implement this method to reopen the device.
    def reopen(logdev = nil)
      flush
    end
    
    # Subclasses may implement this method to flush any buffers used by the device.
    def flush
    end
    
    # Subclasses may implement this method to get the format for log timestamps.
    def datetime_format
    end
    
    # Subclasses may implement this method to set a format for log timestamps.
    def datetime_format=(format)
    end
  end
end

Version data entries

10 entries across 10 versions & 1 rubygems

Version Path
lumberjack-1.2.7 lib/lumberjack/device.rb
lumberjack-1.2.6 lib/lumberjack/device.rb
lumberjack-1.2.5 lib/lumberjack/device.rb
lumberjack-1.2.4 lib/lumberjack/device.rb
lumberjack-1.2.3 lib/lumberjack/device.rb
lumberjack-1.2.2 lib/lumberjack/device.rb
lumberjack-1.2.1 lib/lumberjack/device.rb
lumberjack-1.2.0 lib/lumberjack/device.rb
lumberjack-1.1.1 lib/lumberjack/device.rb
lumberjack-1.1.0 lib/lumberjack/device.rb