我有一个问题,当我不想要任何日志记录时,我的代码会中断。我控制是否希望看到使用'-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'的情况下调用脚本时可以正常工作?
答案 0 :(得分:0)
尝试以下方法:
if not cfg['verbose']:
logger.addHandler(logging.NullHandler())
return logger