lib/tee_logger.rb
require 'logger'
require 'tee_logger/version'
require 'tee_logger/constants'
require 'tee_logger/configuration'
require 'tee_logger/utils'
require 'tee_logger/tee_logger_base'
# namespace
module TeeLogger
extend Configration
# shortcut for TeeLogger::TeeLoggerBase.new
# @param logdev [String]
# @param shift_age [Integer]
# @param shift_size [Integer]
# @return [TeeLogger::TeeLoggerBase]
# @see TeeLoggerBase
def self.new(logdev = nil, shift_age = 0, shift_size = 1_048_576)
TeeLoggerBase.new(logdev, shift_age, shift_size)
end
# define singleton method .logger for your module.
# and TeeLogger.progname is your module name.
def self.extended(mod)
mod.define_singleton_method(:logger) do
return @logger if @logger
@logger = TeeLogger.new
@logger.progname = TeeLogger.progname || mod
@logger
end
end
# define instance method #logger for your class.
# and TeeLogger.progname is your class name.
def self.included(klass)
klass.class_eval do
define_method(:logger) do
return @logger if @logger
@logger = TeeLogger.new
@logger.progname = TeeLogger.progname || klass.name
@logger
end
end
end
end