• logging日志模块_python


    一、logging模块

    1、功能

    logging模块是Python内置的标准模块,主要用于输出运行日志,可以设置输出日志的等级、日志保存路径、日志文件回滚等;相比print,具备如下优点:

    • 可以通过设置不同的日志等级,在release版本中只输出重要信息,而不必显示大量的调试信息;

    • print将所有信息都输出到标准输出中,严重影响开发者从标准输出中查看其它数据;logging则可以由开发者决定将信息输出到什么地方,以及怎么输出。

    2、日志级别以及修改默认级别

    DEBUG  最详细的日志信息,典型应用场景是 问题诊断

    INFO   信息详细程度仅次于DEBUG,通常只记录关键节点信息,用于确认一切都是按照我们预期的那样进行工作

    WARNING 当某些不期望的事情发生时记录的信息(如,磁盘可用空间较低),但是此时应用程序还是正常运行的

    ERROR  由于一个更严重的问题导致某些功能不能正常运行时记录的信息

    CRITICAL 当发生严重错误,导致应用程序不能继续运行时记录的信息

    默认日志级别:WARNING

    修改默认级别:basicConfig

    logging.basicConfig(level=logging.DEBUG,
    format="%(asctime)s %(name)s %(levelname)s %(message)s",
    datefmt = '%Y-%m-%d %H:%M:%S %a'
    )    #修改日志级别为debug
    logging.debug("msg1")    #2020-01-06 23:12:04 Mon root DEBUG msg1
    logging.info("msg2")   #2020-01-06 23:12:04 Mon root INFO msg2
    logging.warning("msg3")   #2020-01-06 23:12:04 Mon root WARNING msg3
    logging.error("msg4")   #2020-01-06 23:12:04 Mon root ERROR msg4
    logging.critical("msg5")   #2020-01-06 23:12:04 Mon root CRITICAL msg5

    basicConfig()方法参数详解:

     

     3、日志输出方式

    简单使用:

    import logging
    logging.basicConfig(level=logging.DEBUG,
    format="%(asctime)s %(name)s %(levelname)s %(message)s",
    datefmt = '%Y-%m-%d %H:%M:%S %a'
    ) #修改日志级别为debug,设置打印格式内容
    logging.debug("msg1") #2020-01-06 23:12:04 Mon root DEBUG msg1
    logging.info("msg2") #2020-01-06 23:12:04 Mon root INFO msg2
    logging.warning("msg3") #2020-01-06 23:12:04 Mon root WARNING msg3
    logging.error("msg4") #2020-01-06 23:12:04 Mon root ERROR msg4
    logging.critical("msg5") #2020-01-06 23:12:04 Mon root CRITICAL msg5

    2、日志流处理模式

    import logging
    logger=logging.getLogger()
    #创建handler,用于输出到日志文件
    fh=logging.FileHandler('test.log')
    #创建handler,用于输出到控制台
    ch=logging.StreamHandler()
    #设置一种打印格式
    formatter=logging.Formatter('%(asctime)s %(name)s %(levelname)s %(message)s')
    #运用对应的格式
    fh.setFormatter(formatter)
    ch.setFormatter(formatter)
    #应用对应的handler
    logger.addHandler(fh)
    logger.addHandler(ch)
    logger.warning('lsss') #2020-01-06 23:32:44,185 root WARNING lsss
  • 相关阅读:
    poj 2478 Farey Sequence
    “玲珑杯”第七届郑州轻工业学院ACM程序设计大赛 ------- D:社交网络
    bnu oj 13288 Bi-shoe and Phi-shoe
    uva 11029 Leading and Trailing
    hdu 1198 Farm Irrigation
    hdu 4965 Fast Matrix Calculation
    Preparing Olympiad---cf550B(DFS或者状态压缩模板)
    squee_spoon and his Cube VI---郑大校赛(求最长子串)
    确定比赛名次---hdu1285(拓扑排序)
    Buy the souvenirs---hdu2126(01背包输出方案数)
  • 原文地址:https://www.cnblogs.com/chenxiaozan/p/12159143.html
Copyright © 2020-2023  润新知