class TeeLogger::TeeLoggerBase

main @see www.rubydoc.info/stdlib/logger/Logger Logger

Public Class Methods

new(logdev = nil, shift_age = 0, shift_size = 1_048_576) click to toggle source

@param logdev [String] @param shift_age [Integer] @param shift_size [Integer] @see Logger#initialize

# File lib/tee_logger/tee_logger_base.rb, line 47
def initialize(logdev = nil, shift_age = 0, shift_size = 1_048_576)
  @console = Logger.new($stdout)
  @logfile = Logger.new(logdev || TeeLogger.logdev, shift_age, shift_size)

  @level, @progname, @formatter, @datetime_format = nil
  configuration
end

Private Class Methods

define_logging_methods(name) click to toggle source

@!macro [attach] logging_methods

@!method $1(progname = nil, *options, &block)
logging $1 level message.
@param progname see also Logger
@param options [Array]
@option options [Fixnum] indent_level
@option options [Symbol] enabling_target
                         valid values => [:console, :logfile]
@param &block see also Logger
@return true
@see Logger
# File lib/tee_logger/tee_logger_base.rb, line 18
def define_logging_methods(name)
  define_method(name) do |progname = nil, *options, &block|
    logdev_name, indent_level = extract_options(options).values
    progname, block = indentation(progname, block, indent_level)
    logging(name, progname, logdev_name, &block)
  end
end
define_loglevel_check_methods(name) click to toggle source

@!macro [attach] loglevel_check_methods

@!method $1(name)
@return [Boolean]
# File lib/tee_logger/tee_logger_base.rb, line 30
def define_loglevel_check_methods(name)
  define_method(name) do
    @console.send(name)
    @logfile.send(name)
  end
end

Public Instance Methods

datetime_format=(datetime_format) click to toggle source

@param datetime_format

# File lib/tee_logger/tee_logger_base.rb, line 85
def datetime_format=(datetime_format)
  @console.datetime_format =
    @logfile.datetime_format =
      @datetime_format = datetime_format
end
disable(logdev_name) { || ... } click to toggle source

@param logdev_name [String, Symbol] @yield before logdev_name disable, after logdev_name enable.

# File lib/tee_logger/tee_logger_base.rb, line 93
def disable(logdev_name)
  correct_name?(logdev_name)
  if block_given?
    disable(logdev_name)
    yield
    enable(logdev_name)
  else
    logdev_instance(logdev_name).formatter = FORMATTER_FOR_DISABLING
  end
end
enable(logdev_name) click to toggle source

@param logdev_name [String, Symbol]

# File lib/tee_logger/tee_logger_base.rb, line 105
def enable(logdev_name)
  correct_name?(logdev_name)
  logdev_instance(logdev_name).formatter = @formatter
end
formatter=(formatter) click to toggle source

@param formatter

# File lib/tee_logger/tee_logger_base.rb, line 80
def formatter=(formatter)
  @console.formatter = @logfile.formatter = @formatter = formatter
end
level=(level) click to toggle source

@param level [Integer]

# File lib/tee_logger/tee_logger_base.rb, line 68
def level=(level)
  @console.level = @logfile.level = @level = level
end
Also aliased as: sev_threshold=
progname=(name = nil) click to toggle source

@param name [String, Symbol]

# File lib/tee_logger/tee_logger_base.rb, line 75
def progname=(name = nil)
  @console.progname = @logfile.progname = @progname = name
end
sev_threshold=(level)
Alias for: level=

Private Instance Methods

configuration() click to toggle source
# File lib/tee_logger/tee_logger_base.rb, line 112
def configuration
  CONFIGURED_ATTRIBUTES.each do |method_name|
    value = TeeLogger.send(method_name)
    send("#{method_name}=", value) unless value.nil?
  end
end
logging(name, progname, logdev_name = nil, &block) click to toggle source
# File lib/tee_logger/tee_logger_base.rb, line 119
def logging(name, progname, logdev_name = nil, &block)
  if logdev_name
    disable(logdev_name) { logging(name, progname, &block) }
  else
    @console.send(name, progname, &block)
    @logfile.send(name, progname, &block)
  end
end