空记录器问题(日志记录)
问题描述:
我有一个问题,当我不想记录任何日志时,我的代码会中断。我控制是否希望使用'-v'选项查看日志记录。我也有一个'd'选项,它也设置了调试模式。空记录器问题(日志记录)
现在,当没有指定'-v'选项时,我的代码会中断。
def initLogging(cfg):
cformat = logging.Formatter('%(asctime)s %(message)s', "%Y-%m-%d %H:%M:%S %Z")
clogger = None
try:
if cfg['debug']:
loglevel = logging.DEBUG
else:
loglevel = logging.INFO
logger = logging.getLogger()
logger.setLevel(loglevel)
if not cfg['verbose']:
logger.addHandler(logging.NullHandler())
return
else:
clogger = logging.StreamHandler()
clogger.setLevel(loglevel)
clogger.setFormatter(cformat)
logger.addHandler(clogger)
except Exception, error:
sys.stderr.write("Error: Unable to initialize logging: %s\n" % error)
sys.stderr.flush()
sys.exit(1)
logger.info("Script initiated.")
return logger
我得到的错误是这样的:
'NoneType' object has no attribute 'info'
这发生在它到达记录器声明是这样的:我如何可以调整这一点,以便它的工作原理,当脚本
logger.info("get_repl_actions(): executing REST query 'GET %s'" % rurl)
没有'-v'被调用?
答
尝试以下操作:
if not cfg['verbose']:
logger.addHandler(logging.NullHandler())
return logger
是否使用记录仪功能之外? – Li357
是的,但我刚刚发现我的问题......我应该是“返回记录器”时,我从if条件的第一个条件中不返回任何内容。 – BenH
很高兴听到! – Li357