zoukankan      html  css  js  c++  java
  • logging模块进阶2

    1.两种级别设置:

    全局级别:生成logger对象后设置的级别

    局部级别:生成handler对象设置的级别

    我们都知道输出的级别不能低于设定的级别,那么全局级别和局部级别哪一个对输出产生影响?

    经过多次尝试发现:向屏幕和文件传输日志时,日志级别需要先和全局级别做比较,级别高于全局再去和局部级别做比较。需要经过两次过滤,才能向屏幕和文件传入日志。

    import logging
    
    # 1.生成logger对象
    logger = logging.getLogger("130")
    logger.setLevel(logging.INFO)   #不设置级别,默认最低级别是warning。
    
    # 2.生成handler对象
    #  把handler对象绑定到logger
    ch = logging.StreamHandler()
    ch.setLevel(logging.DEBUG)            #对屏幕和文件分别设置级别
    fh = logging.FileHandler("130.log")
    fh.setLevel(logging.ERROR)
    
    logger.addHandler(ch)
    logger.addHandler(fh)
    
    # 3.生成formatter对象
    #   把formatter对象绑定到handler
    file_formatter = logging.Formatter("%(asctime)s %(name)s %(levelname)s %(message)s")
    console_formatter = logging.Formatter("%(asctime)s %(name)s %(levelname)s %(lineno)s %(message)s")
    
    ch.setFormatter(console_formatter)
    fh.setFormatter(file_formatter)
    
    logger.debug("miss eat")
    logger.warning("hello girl") 
    

      

  • 相关阅读:
    Day-11 闭包和迭代器
    Day-01 Python基础
    Day-10 函数的进阶
    Day-09 初识函数
    Day-08 文件操作
    Day-07 基础数据类型补充 set集合 深浅拷贝
    Day-06 小数据池 再谈编码
    Day-05 基础数据类型字典dict
    Day-04 基础数据类型list, tuple
    NodeJs获取两个日期间的所有日期
  • 原文地址:https://www.cnblogs.com/Roc-Atlantis/p/8886370.html
Copyright © 2011-2022 走看看