Python 默认 Logging 级别及其示例

server/2024/12/19 0:43:25/

Python 默认 Logging 级别及其示例

在开发Python应用程序时,日志记录(Logging)是调试和监控程序运行状态的重要工具。Python的logging模块提供了一种灵活且强大的方式来记录应用程序的信息。本文将详细介绍Python logging模块的默认级别,并通过示例来说明如何使用这些级别。

Python Logging 模块简介

Python的logging模块是标准库的一部分,它提供了一种机制来记录应用程序的事件信息。通过配置不同的日志级别,开发者可以选择性地记录不同严重程度的消息。

日志级别

logging模块定义了以下几个日志级别,按严重程度从低到高排列:

  • DEBUG:详细信息,通常只在调试问题时使用。
  • INFO:确认一切按预期工作。
  • WARNING:表示可能发生了一些意外,但应用程序仍然可以继续运行。
  • ERROR:由于更严重的问题,某些功能不能正常工作。
  • CRITICAL:严重的错误,表明程序可能无法继续运行。
默认日志级别

Python logging模块的默认日志级别是WARNING。这意味着,如果不进行任何配置,只有WARNING及以上级别的日志消息会被记录。

示例代码

下面是一个简单的示例,演示如何使用Python的logging模块记录不同级别的日志消息,并展示默认日志级别的效果。

python">import logging# 创建一个logger对象
logger = logging.getLogger('example_logger')# 设置默认的日志级别
logger.setLevel(logging.DEBUG)# 创建一个StreamHandler,用于输出到控制台
handler = logging.StreamHandler()# 设置handler的日志级别为默认级别(WARNING)
handler.setLevel(logging.WARNING)# 创建一个Formatter,用于设置日志格式
formatter = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s')
handler.setFormatter(formatter)# 将handler添加到logger
logger.addHandler(handler)# 记录不同级别的日志消息
logger.debug('这是一条调试信息')
logger.info('这是一条信息消息')
logger.warning('这是一条警告消息')
logger.error('这是一条错误消息')
logger.critical('这是一条严重错误消息')
运行结果

当你运行上述代码时,控制台将只显示WARNING及以上级别的日志消息,因为StreamHandler的默认日志级别是WARNING

2023-10-05 12:34:56,789 - example_logger - WARNING - 这是一条警告消息
2023-10-05 12:34:56,790 - example_logger - ERROR - 这是一条错误消息
2023-10-05 12:34:56,790 - example_logger - CRITICAL - 这是一条严重错误消息
修改默认日志级别

如果你希望记录所有级别的日志消息,可以修改StreamHandler的日志级别。例如,将其设置为DEBUG

python">import logging# 创建一个logger对象
logger = logging.getLogger('example_logger')# 设置logger的日志级别为DEBUG
logger.setLevel(logging.DEBUG)# 创建一个StreamHandler,用于输出到控制台
handler = logging.StreamHandler()# 设置handler的日志级别为DEBUG
handler.setLevel(logging.DEBUG)# 创建一个Formatter,用于设置日志格式
formatter = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s')
handler.setFormatter(formatter)# 将handler添加到logger
logger.addHandler(handler)# 记录不同级别的日志消息
logger.debug('这是一条调试信息')
logger.info('这是一条信息消息')
logger.warning('这是一条警告消息')
logger.error('这是一条错误消息')
logger.critical('这是一条严重错误消息')
运行结果

这次运行上述代码时,控制台将显示所有级别的日志消息:

2023-10-05 12:34:56,789 - example_logger - DEBUG - 这是一条调试信息
2023-10-05 12:34:56,790 - example_logger - INFO - 这是一条信息消息
2023-10-05 12:34:56,791 - example_logger - WARNING - 这是一条警告消息
2023-10-05 12:34:56,792 - example_logger - ERROR - 这是一条错误消息
2023-10-05 12:34:56,793 - example_logger - CRITICAL - 这是一条严重错误消息
总结

通过本文,你了解了Python logging模块的默认日志级别是WARNING,并且学会了如何通过修改StreamHandler的日志级别来记录不同级别的日志消息。日志记录是开发过程中不可或缺的一部分,合理配置日志级别可以帮助你更好地调试和监控应用程序。

欢迎点赞、关注、转发、收藏!!!


http://www.ppmy.cn/server/151303.html

相关文章

Java安全—SpringBootActuator监控泄露Swagger自动化

前言 今天依旧是SpringBoot框架,估计还要一篇文章才能把它写完,没办法,Java安全的内容太多了。 Actuator SpringBoot Actuator模块提供了生产级别的功能,比如健康检查,审计,指标收集,HTTP跟踪…

Javaweb:HTML、CSS

学习 资源1 学习资源 2 黑马javaweb HTML 1、基础标签、样式 图片标签&#xff1a;<img> src:绝对路径、相对路径(绝对磁盘路径&#xff0c;网络路径&#xff1b;./当前目录&#xff09;width:宽度&#xff08;百分比&#xff09;height:高度&#xff08;百分比&…

09篇--图片的水印添加(掩膜的运用)

如何添加水印&#xff1f; 添加水印其实可以理解为将一张图片中的某个物体或者图案提取出来&#xff0c;然后叠加到另一张图片上。具体的操作思想是通过将原始图片转换成灰度图&#xff0c;并进行二值化处理&#xff0c;去除背景部分&#xff0c;得到一个类似掩膜的图像。然后…

【数据分享】2013-2023年我国省市县三级的逐年CO数据(免费获取\excel\shp格式)

空气质量数据是在我们日常研究中经常使用的数据&#xff01;之前我们给大家分享了2000-2023年的省市县三级的逐年PM2.5数据、2000-2023年的省市县三级的逐年PM10数据、2013-2023年的省市县三级的逐年SO2数据、2000-2023年省市县三级的逐年O3数据和2008-2023年我国省市县三级的逐…

7_Sass Introspection 函数 --[CSS预处理]

Sass 的 Introspection 函数允许开发者检查和操作样式表的内部结构&#xff0c;包括选择器、属性、值等。这些函数提供了对编译过程中 Sass 文件内容的深入访问能力&#xff0c;使得更复杂的逻辑处理成为可能。以下是一些常用的 Sass Introspection 函数及其用法示例&#xff1…

OpenCV实验:图片加水印

第二篇&#xff1a;图片添加水印&#xff08;加 logo&#xff09; 1. 实验原理 水印原理&#xff1a; 图片添加水印是图像叠加的一种应用&#xff0c;分为透明水印和不透明水印。水印的实现通常依赖于像素值操作&#xff0c;将水印图片融合到目标图片中&#xff0c;常用的方法…

FFmpeg 音视频基础

文章目录 视频基础视频图像RGB颜色空间YUV颜色空间YUV种类YUV4:4:4YUV4:2:2YUV4:2:0YUV存储格式RGB与YUV相互转换 分辨率位深帧率码流步幅&#xff08;stride&#xff09; 音频基础采样位深采样率通道数PCM音频大小计算比特率音频码率音频帧音频帧的存储模式 音频编码原理频域掩…

《深入探究:C++ 在多方面对 C 语言实现的优化》

目录 一、C 在 C 上进行的优化二、C 关键字&#xff08;C 98&#xff09;三、C 的输入输出1. cin 和 cout 的使用2. cin、cout 和 scanf()、printf() 的区别 三、命名空间1. 命名空间的使用2. 嵌套命名空间3. 在多个头文件中使用相同的命名空间 四、函数缺省值1. 缺省值的使用2…