python: logging日志级别详解

import logging



'''

日志级别:

critical > error > warning > info > debug,notset

级别越高打印的日志越少,反之亦然,即

debug    : 打印全部的日志(notset等同于debug)

info     : 打印info,warning,error,critical级别的日志

warning  : 打印warning,error,critical级别的日志

error    : 打印error,critical级别的日志

critical : 打印critical级别

'''



handler=logging.FileHandler("/tmp/TNLOG-error.log")



def log(level):

    logger = logging.getLogger()

    #不能重复创建handler,否则会重复写入同样的记录?

    logger.addHandler(handler)

    logger.setLevel(level)

    logger.debug("debug")

    logger.info("info")

    logger.warning("warning")

    logger.error("error")

    logger.critical("critical\n")



if __name__ == "__main__":

    log(logging.NOTSET)

    log(logging.DEBUG)

    log(logging.INFO)

    log(logging.WARNING)

    log(logging.ERROR)

    log(logging.CRITICAL)

在程序开发阶段,显然我们需要大量的日志,因此日志级别应为debug,等系统逐渐稳定,我们需要记录的日志应该减少一些,这样可以提高程序执行效率(我觉得似乎不应该删除debug级别的日志语句,因为维护时会再度需要?虽然让代码变长,我认为好的系统应该有这样的语句在)这个时候,我们更关心用户在系统里的动作,用户做了什么,如果我们的程序是一个可以买东西的网站,我们需要记录一切与钱有关的信息,即用户对于核心数据的修改,我们必须记录在案,这个时候我们可以选择info和info以上级别的日志,最重要的信息,显然我们需要选择critical级别,具体怎么划分看系统的设计,我也没有太多经验就先不说了,不过异常部分(try-except)我建议还是使用error级别,即使系统正常运行以后也不能保证有未预料的错误产生,一旦选择低级别的日志很可能会漏记重要的系统异常的原因

你可能感兴趣的:(logging)