Sha256: e5f8a14ae4531e6679dc94abf3b93d1b2e84d71273c9a831de2affabf05b3654

Contents?: true

Size: 1.2 KB

Versions: 1

Compression:

Stored size: 1.2 KB

Contents

require 'logger'

# namespace
module TeeLogger
  # base class
  class Base
    attr_reader :logger, :console

    def initialize(logdev = DEFAULT_FILE, shift_age = 0, shift_size = 1_048_576)
      @logger  = Logger.new(logdev, shift_age, shift_size)
      @console = Logger.new(STDOUT)
    end

    # logging methods.
    LOGGING_METHODS.each do |name|
      define_method(name) do |progname = nil, &block|
        @logger.send(name, progname, &block)
        @console.send(name, progname, &block)
      end
    end

    # check logging level methods.
    LOGGING_METHODS.map { |v| "#{v}?" }.each do |name|
      define_method(name) do
        @logger.send(name)
        @console.send(name)
      end
    end

    # TODO: Implement
    def disable(target)
      # undef_method, remove_method ....
    end

    # TODO: Implement
    def enable(target)
      # undef_method, remove_method ....
    end

    def progname
      # TODO: which?
      # @logger.progname
      @console.progname
    end

    def progname=(name = nil)
      @logger.progname  = name
      @console.progname = name
    end

    def close
      @logger.close
      # @console.close
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
tee_logger-2.0.2 lib/tee_logger/base.rb