当前位置: 首页 > article >正文

python的logging模块setLevel(LEVELS.get(‘default‘,logging.NOTSET))

LEVELS = {'debug':logging.DEBUG,
          'info':logging.INFO,
          'warning':logging.WARNING,
          'error':logging.ERROR,
          'critical':logging.CRITICAL}
logger.setLevel(LEVELS.get('default',logging.NOTSET))

logger.setLevel(LEVELS.get(‘default’,logging.NOTSET)) 是在Python中使用logging模块配置日志记录器时的一行代码。这行代码的作用是设置日志记录器的级别。让我们来详细解释一下:

logger 是一个日志记录器对象,它是一个logging.Logger类的实例。
setLevel 方法用于设置日志记录器的级别,即确定应该记录哪些级别的日志信息。
LEVELS 是一个字典(在Python中表示为dict),它可能存储了不同日志级别的名称和对应的值。
get 方法是字典的方法,用于获取字典中键对应的值。如果键不存在,则返回提供的第二个参数,这里是一个默认值logging.NOTSET。
logging.NOTSET 是logging模块中定义的一个级别,其数值为0。它表示不进行任何日志记录。
具体到这行代码:

LEVELS.get(‘default’,logging.NOTSET):尝试从LEVELS字典中获取键’default’对应的值。如果’default’不存在,则返回logging.NOTSET。
然后将获取到的值(可能是一个日志级别,如logging.INFO、logging.DEBUG等,或者logging.NOTSET)设置为logger的日志级别。

这段代码是使用 Python 的标准库 logging 进行日志级别设置。
logger 应该是一个日志记录器对象。LEVELS.get(‘default’, logging.NOTSET) 尝试从名为 LEVELS 的字典中获取键为 ‘default’ 的值,如果该键不存在,则返回 logging.NOTSET。然后将获取到的值作为日志级别设置给日志记录器 logger。
如果 LEVELS 字典中定义了合理的日志级别(例如 logging.DEBUG、logging.INFO、logging.WARNING、logging.ERROR、logging.CRITICAL),那么这段代码可以根据配置动态地设置日志记录器的级别。如果 LEVELS 字典中没有 ‘default’ 键或者对应的值不合法,日志记录器将使用默认的 NOTSET 级别,这意味着将记录所有级别的日志消息,因为 NOTSET 会使得日志记录器将日志传递给父级处理程序,而父级处理程序的默认行为是处理所有级别的日志。

logging.NOTSET是 Python 标准库logging模块中的一个常量。
当一个日志记录器(Logger)被设置为logging.NOTSET级别时,它实际上将把日志事件传递给它的父级日志记录器处理,并且不会对日志事件进行任何过滤或处理。
例如,如果一个日志记录器的级别设置为logging.NOTSET,而它的父级日志记录器的级别设置为logging.INFO,那么这个日志记录器将把所有的日志事件传递给父级日志记录器,并且只有那些级别为logging.INFO或更高级别的日志事件才会被处理和输出。


http://www.kler.cn/news/294472.html

相关文章:

  • 如何把自动获取的ip地址固定
  • 每日一题~cf 970 div3 (A思维,B小模拟,C二分,D排列数建图成环,E 26个字母暴力+前缀和,F 逆元,G 数论gcd )
  • 13款常用AI编程工具
  • 稳定的亚马逊自养号测评系统需具备哪些条件
  • Redis:Redis性能变慢的原因
  • JavaScript 知识点总结
  • Linux下安装使用Git及常用操作命令详解
  • AIOT人工智能物联网六大场景
  • Linux下基于TCP协议的简易服务器实现(C语言)
  • OpenCV中的颜色映射函数applyColorMap的使用
  • LCP 485. 最大连续 1 的个数[lleetcode -11]
  • 通信工程学习:什么是PCM脉冲编码调制、DPCM差分脉冲编码调制、ADPCM自适应差分脉冲编码调制
  • Flask中实现上下文管理
  • ARM基础---编程模型---ARM汇编
  • 把设计模式用起来!(1)——楔
  • 算法复杂度 —— 数据结构前言、算法效率、时间复杂度、空间复杂度、常见复杂度对比、复杂度算法题(旋转数组)
  • 掌握Hive函数[2]:从基础到高级应用
  • 对比测评3款BI分析工具
  • es数组包含查询
  • 『功能项目』战士的A键连击【33】
  • Java项目: 基于SpringBoot+mybatis+maven+mysql图书馆管理系统(含源码+数据库+任务书+答辩PPT+毕业论文)
  • 2024 批量下载公众号渤海小吏1千篇文章导出pdf(带留言),抓取文章标题时间链接封面阅读数分享数留言数粉丝数导出excel
  • Python测试开发---什么是单例模式
  • tomato靶场攻略
  • 基于单片机的多功能数字闹钟设计
  • 【简单】 猿人学web第一届 第15题 备周则意怠,常见则不疑
  • javaWeb【day03】---(Vue-Element)
  • python | 字符串字母大小写转换方法
  • HalconDotNet中的图像特征与提取详解
  • MATLAB算法实战应用案例精讲-【人工智能】数据元(概念篇)