zoukankan      html  css  js  c++  java
  • python中的logging模块

    研究了好些天的logging模块,今天终于能用稍微清晰一点的思路记录一下了~~~

    一、root  logger

    import logging
    
    logging.debug('这是debug')
    logging.info('这是info')
    logging.warning('这是warning')
    logging.error('这是error')
    logging.critical('这是critical')

    最后结果是:控制台输出warning、error、critical级别的日志

    这是warning
    这是error
    这是critical

    日志输出说明3个问题:

    1、日志默认level是warning

    2、未配置formater时,日志直接输出内容(message),不进行格式拼接

    3、日志默认的handler是StreamHandler 

    level的级别排序为CRITICAL > ERROR > WARNING > INFO > DEBUG

    定义的记录级别越低,信息越多,级别越高,信息越少

    直接使用logging输出日志时,默认创建的就是root logger

    二、basicConfig方法配置logging记录格式

    basciConfig配置记录的几种格式参数:

    其中format参数用来设置日志输出格式,日志输出格式的配置参数如下:

    level参数用来设置默认的root logger的level

    format和level的设置方式如下:

    logging.basicConfig(level=logging.INFO,format="%(asctime)s %(thread)d %(message)s")
    
    logging.info('已经配置basicConfig')

    输出如下:

    2011-08-31 19:18:29,81 - 24631 - 已经配置basicConfig

    三、logger类

    root  logger

    root = logging.getLogger() 

    parent logger

    logger = logging.getLogger('s') 

    child logger

    logger_child = logging.getLogger('s.s1')

    logger的类关系通过“.”进行设置,name相同,logger唯一相同

    通常使用方法:

    root = logging.getLogger()
    root.setLevel(logging.INFO)
    sh = logging.StreamHandler()
    sh.setLevel(logging.WARNING)
    sh.setFormatter(logging.Formatter('%(asctime)s - %(message)s'))
    root.addHandler(sh)
    root.warning('这是log')

    logger输出日志时,因为logger和handler均有level,所以,日志的level要先与logger的level进行比较,大于logger的level才能与handler的level进行比较,大于handler的level才能输出到对应的位置,若小于handler的level,则当前logger不输出,若日志的level直接小于logger的level,那么当前logger直接不输入日志,无需再进行后边的比较

    参数propagate

    默认参数propagate的参数值为true,及当前logger打印日志输出之后,还需要将日志传入到所有父节点和根节点进行打印输出,所修改propagate为false,则当前级别logger的日志不再向上级进行传输

    参考文章:

    [Python 模块] logging模块、Logger类

    使用python的logging模块

    python中logging模块的一些简单用法

    使用python的logging模块

  • 相关阅读:
    部署NetCore项目(本文介绍用用IIS部署)
    vs中添加MySql实体集流程
    一文搞定HashMap的实现原理
    二分查找
    hashcode返回值可能为负数
    哈希碰撞与生日攻击
    并发的第二天
    java并发编程-1
    排序的第一天
    并发的第一天
  • 原文地址:https://www.cnblogs.com/jeff-z-blog/p/10914405.html
Copyright © 2011-2022 走看看