空记录器(日志记录)的问题



我有一个问题,当我不想要任何日志记录时,我的代码会中断。我控制是否希望看到带有"-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:  %sn" % 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

最新更新