Python logging 模块简述

Python logging 模块定义了为应用程序和库实现灵活的事件日志记录的函数和类。程序开发过程中,很多程序都有记录日志的需求,并且日志包含的信息有正常的程序访问日志还可能有错误、警告等信息输出,Python 的 logging 模块提供了标准的日志接口,可以通过它存储各种格式的日志,日志记录提供了一组便利功能,用于简单的日志记录用法。

  • 使用 Python Logging 模块的主要好处是所有 Python 模块都可以参与日志记录

  • Logging 模块提供了大量具有灵活性的功能

日志记录函数以它们用来跟踪的事件的级别或严重性命名。下面描述了标准级别及其适用性(从高到低的顺序):
日志等级(level)描述
DEBUG 最详细的日志信息,典型应用场景是 问题诊断
INFO 信息详细程度仅次于DEBUG,通常只记录关键节点信息,用于确认一切都是按照我们预期的那样进行工作
WARNING 当某些不期望的事情发生时记录的信息(如,磁盘可用空间较低),但是此时应用程序还是正常运行的
ERROR 由于一个更严重的问题导致某些功能不能正常运行时记录的信息
CRITICAL 当发生严重错误,导致应用程序不能继续运行时记录的信息

日志级别等级排序:critical > error > warning > info > debug

级别越高打印的日志越少,反之亦然,即

  • debug    : 打印全部的日志( notset 等同于 debug )

  • info     : 打印 info, warning, error, critical 级别的日志

  • warning  : 打印 warning, error, critical 级别的日志

  • error    : 打印 error, critical 级别的日志

  • critical : 打印 critical 级别

案例测试

指定日志输出级别

默认级别

复制代码
logging.debug("This's debug log info...")
logging.info("This's info log info...")
logging.warning("This's warning log info...")
logging.error("This's error log info...")
logging.critical("This's critical log info...")
'''
WARNING:root:This's warning log info...
ERROR:root:This's error log info...
CRITICAL:root:This's critical log info...
'''
复制代码

使用 basicconfig() 设置日志级别

复制代码
logging.debug("This's debug log info...")
logging.info("This's info log info...")
logging.warning("This's warning log info...")
logging.error("This's error log info...")
logging.critical("This's critical log info...")
'''
DEBUG:root:This's debug log info...
INFO:root:This's info log info...
WARNING:root:This's warning log info...
ERROR:root:This's error log info...
CRITICAL:root:This's critical log info...
'''
复制代码

使用 basicconfig() 设置日志级别和目录

logging.basicConfig(level=logging.DEBUG,filename='loginfo.log')

logging.debug("This's debug log info...")
logging.info("This's info log info...")
logging.warning("This's warning log info...")
logging.error("This's error log info...")
logging.critical("This's critical log info...")

 说明:默认情况下日志落盘是append,如果每次执行程序直接覆写,需要设置mode

logging.basicConfig(level=logging.DEBUG, filename='loginfo.log', filemode='w')

 

posted @   晓枫的春天  阅读(29)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
历史上的今天:
2022-06-23 Flink 窗口API & 窗口分配器
2020-06-23 Vue 简明使用--条件判断(二)
点击右上角即可分享
微信分享提示