繁体   English   中英

空记录器出现问题(记录)

[英]Issue with null logger (logging)

我有一个问题,当我不希望任何日志记录时,代码会中断。 我控制是否希望使用'-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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM