def _configureLogger(name, force=False):
try:
logger = _Loggers[name]
except KeyError:
# add unknown logger names
logger = getLogger(name)
_debug("Added unknown logger name '%s'" % name)
# If not forcing, skip loggers that already have handlers installed
if not force and logger.handlers:
return
global _LogLevels
if not _LogLevels:
setLogLevels(getParam('GCAM.LogLevel') or 'WARN')
if name in _LogLevels:
level = _LogLevels[name]
_debug("Configuring %s, level=%s" % (name, level))
logger.setLevel(level)
else:
parent = logger.parent
# Handle case of user plugins, which aren't in pygcam package
# but we'd like them to default to the 'pygcam' loglevel
if isinstance(parent, logging.RootLogger):
parent = getLogger(PKGNAME)
logger.setLevel(parent.level)
logger.propagate = False
# flush and remove all handlers
for handler in logger.handlers:
if not isinstance(handler, logging.NullHandler):
handler.flush()
logger.removeHandler(handler)
logConsole = getParamAsBoolean('GCAM.LogConsole')
if logConsole:
consoleFormat = getParam('GCAM.LogConsoleFormat')
_addHandler(logger, consoleFormat)
logFile = getParam('GCAM.LogFile')
if logFile:
fileFormat = getParam('GCAM.LogFileFormat')
_addHandler(logger, fileFormat, logFile=logFile)
if not logger.handlers:
logger.addHandler(logger, logging.NullHandler())
_debug("Added NullHandler to root logger")
评论列表
文章目录