Python 的 logging

在 Python 的 logging 模块中,日志等级的顺序是从低到高排列的。以下是各个日志等级及其对应的数值:

  1. DEBUG (10):详细的信息,通常只出现在诊断问题时。
  2. INFO (20):确认一切按预期运行。
  3. WARNING (30):一个迹象表明,一些意想不到的事情发生了,或者表明一些问题在不久的将来可能会发生。软件仍然按预期工作。
  4. ERROR (40):更严重的问题,软件未能执行某些功能。
  5. CRITICAL (50):严重错误,表明程序可能无法继续运行。

日志等级关系

  • NOTSET (0):特殊值,表示不设置日志级别,通常用于继承父日志记录器的级别。

日志等级的关系可以用以下顺序表示:

bash 复制代码
NOTSET (0) < DEBUG (10) < INFO (20) < WARNING (30) < ERROR (40) < CRITICAL (50)

示例代码

以下是一个简单的示例,展示了如何设置日志级别并记录不同级别的日志:

python 复制代码
import logging

# 设置日志级别为 DEBUG
logging.basicConfig(level=logging.DEBUG, format='%(asctime)s - %(name)s - %(levelname)s - %(message)s')

# 记录不同级别的日志
logging.debug('这是调试信息')
logging.info('这是有用的信息')
logging.warning('这是一个警告信息')
logging.error('这是一个错误信息')
logging.critical('这是一个严重错误信息')

输出示例

如果日志级别设置为 DEBUG,上述代码将输出所有级别的日志:

python 复制代码
2024-11-02 22:30:00,000 - root - DEBUG - 这是调试信息
2024-11-02 22:30:00,001 - root - INFO - 这是有用的信息
2024-11-02 22:30:00,002 - root - WARNING - 这是一个警告信息
2024-11-02 22:30:00,003 - root - ERROR - 这是一个错误信息
2024-11-02 22:30:00,004 - root - CRITICAL - 这是一个严重错误信息

如果日志级别设置为 INFO,则只会输出 INFO 及以上级别的日志:

python 复制代码
logging.basicConfig(level=logging.INFO, format='%(asctime)s - %(name)s - %(levelname)s - %(message)s')

输出:

python 复制代码
2024-11-02 22:30:00,000 - root - INFO - 这是有用的信息
2024-11-02 22:30:00,001 - root - WARNING - 这是一个警告信息
2024-11-02 22:30:00,002 - root - ERROR - 这是一个错误信息
2024-11-02 22:30:00,003 - root - CRITICAL - 这是一个严重错误信息

通过这种方式,可以灵活地控制日志的输出级别,以便在不同的开发和生产环境中进行调试和监控。

相关推荐
woshihonghonga6 分钟前
Deepseek在它擅长的AI数据处理领域还有是有低级错误【k折交叉验证中每折样本数计算】
人工智能·python·深度学习·机器学习
程序猿20236 分钟前
Python每日一练---第六天:罗马数字转整数
开发语言·python·算法
程序员杰哥26 分钟前
Fiddler抓包手机和部分app无法连接网络问题
自动化测试·软件测试·python·测试工具·智能手机·fiddler·测试用例
weixin_3077791336 分钟前
用Python和FastAPI构建一个完整的企业级AI Agent微服务脚手架
python·fastapi·web app
熊猫_豆豆39 分钟前
回调函数的作用与举例(Python版)
服务器·python·编程语法
AI Echoes1 小时前
LangChain 使用语义路由选择不同的Prompt模板
人工智能·python·langchain·prompt·agent
JJJJ_iii1 小时前
【机器学习16】连续状态空间、深度Q网络DQN、经验回放、探索与利用
人工智能·笔记·python·机器学习·强化学习
CodeLongBear1 小时前
从Java后端到Python大模型:我的学习转型与规划
java·python·学习
ada7_1 小时前
LeetCode(python)——49.字母异位词分组
java·python·leetcode
我的xiaodoujiao1 小时前
使用 Python 语言 从 0 到 1 搭建完整 Web UI自动化测试学习系列 23--数据驱动--参数化处理 Yaml 文件
python·学习·测试工具·pytest