# # Borrowed from: https://raw.github.com/davetron5000/methadone/master/lib/methadone/cli_logging.rb # require 'blazing/cli_logger' module Blazing # Provides easier access to a shared Methadone::CLILogger instance. # # Include this module into your class, and #logger provides access to a shared logger. # This is handy if you want all of your clases to have access to the same logger, but # don't want to (or aren't able to) pass it around to each class. # # This also provides methods for direct logging without going through the #logger # # === Example # # class MyClass # include Methadone::CLILogger # # def doit # debug("About to doit!") # if results # info("We did it!" # else # error("Something went wrong") # end # debug("Done doing it") # end # end module CLILogging # Access the shared logger. All classes that include this module # will get the same logger via this method. def logger @@logger ||= Blazing::CLILogger.new end # Change the global logger that includers will use. Useful if you # don't want the default configured logger. # # +new_logger+:: the new logger. May not be nil and should be a a logger of some kind def logger=(new_logger) raise ArgumentError,"Logger may not be nil" if new_logger.nil? @@logger = new_logger end # pass-through to logger.debug(progname,&block) def debug(progname = nil, &block); logger.debug(progname,&block); end # pass-through to logger.info(progname,&block) def info(progname = nil, &block); logger.info(progname,&block); end # pass-through to logger.warn(progname,&block) def warn(progname = nil, &block); logger.warn(progname,&block); end # pass-through to logger.error(progname,&block) def error(progname = nil, &block); logger.error(progname,&block); end # pass-through to logger.fatal(progname,&block) def fatal(progname = nil, &block); logger.fatal(progname,&block); end end end