#
# 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