require 'logger' # see http://hawkins.io/2013/08/using-the-ruby-logger/ module Sbuilder module Utils module MyLogger # no logging done class NullLoger < Logger def initialize(*args) end def add(*args, &block) end def debug? false end end @@logfile = nil # absolute path to log file LOGFILE="sbuilder.log" def logfile( options ) return @@logfile if @@logfile @@logfile = options[:logfile] || File.join( Dir.getwd, LOGFILE ) end def getLogger( progname=nil, options={} ) progname = self.class.name.split('::').last if progname.nil? level = get_level( options ) if level.nil? return NullLoger.new else logger = Logger.new( logfile(options) ) logger.level=level logger.progname = progname return logger end end # getLogger # ------------------------------------------------------------------ private def get_level( options ) # puts "#{__method__}: options=#{options}" level_name = options && options[:log] ? options[:log] : ENV['LOG_LEVEL'] level = case level_name when 'warn', 'WARN' Logger::WARN when 'info', 'INFO' Logger::INFO when 'debug', 'DEBUG' Logger::DEBUG when 'error', 'ERROR' Logger::ERROR else nil end return level end end end end