Python日志记录logging模块使用详解
150 浏览量
更新于2024-08-28
收藏 92KB PDF 举报
解读python logging模块的使用方法
logging模块是Python内置的标准模块,主要用于输出运行日志,可以设置输出日志的等级、日志保存路径、日志文件回滚等。相比print,logging模块具备如下优点:
1. 可以通过设置不同的日志等级,在release版本中只输出重要信息,而不必显示大量的调试信息;
2. print将所有信息都输出到标准输出中,严重影响开发者从标准输出中查看其它数据;logging则可以由开发者决定将信息输出到什么地方,以及怎么输出。
logging框架中主要由四个部分组成:
1. Loggers: 可供程序直接调用的接口
2. Handlers: 决定将日志记录分配至正确的目的地
3. Filters: 提供更细粒度的日志是否输出的判断
4. Formatters: 制定最终记录打印的格式布局
logging模块的使用方法:
1. 基本使用
配置logging基本的设置,然后在控制台输出日志。例如:
```
import logging
logging.basicConfig(level=logging.INFO, format='%(asctime)s-%(name)s-%(levelname)s-%(message)s')
logger = logging.getLogger(__name__)
logger.info("Start print log")
logger.debug("Do something")
logger.warning("Something may be fail.")
logger.info("Finish")
```
运行时,控制台输出:
```
2016-10-09 19:11:19,434 – __main__ – INFO – Start print log
2016-10-09 19:11:19,434 – __main__ – WARNING – Something may be fail.
2016-10-09 19:11:19,434 – __main__ – INFO – Finish
```
logging中可以选择很多消息级别,如debug、info、warning、error以及critical。通过赋予logger或者handler不同的级别,开发者就可以只输出错误信息到特定的记录文件,或者在调试时只记录调试信息。
例如,我们将logger的级别改为DEBUG,再观察一下输出结果:
```
import logging
logging.basicConfig(level=logging.DEBUG, format='%(asctime)s-%(name)s-%(levelname)s-%(message)s')
logger = logging.getLogger(__name__)
logger.debug("Do something")
logger.info("Start print log")
logger.warning("Something may be fail.")
logger.error("Something is wrong.")
logger.critical("Something is very wrong.")
```
运行时,控制台输出:
```
2016-10-09 19:11:19,434 – __main__ – DEBUG – Do something
2016-10-09 19:11:19,434 – __main__ – INFO – Start print log
2016-10-09 19:11:19,434 – __main__ – WARNING – Something may be fail.
2016-10-09 19:11:19,434 – __main__ – ERROR – Something is wrong.
2016-10-09 19:11:19,434 – __main__ – CRITICAL – Something is very wrong.
```
logging模块还提供了许多其他的功能,如日志文件回滚、日志记录格式的自定义等。logging模块是一个功能强大且灵活的日志记录工具,能够满足大多数开发者的需求。
2021-01-02 上传
2019-06-05 上传
2018-06-03 上传
2023-09-07 上传
2023-04-02 上传
2023-04-18 上传
2023-04-27 上传
2023-06-01 上传
2023-12-09 上传
weixin_38591291
- 粉丝: 6
- 资源: 957
最新资源
- 黑板风格计算机毕业答辩PPT模板下载
- CodeSandbox实现ListView快速创建指南
- Node.js脚本实现WXR文件到Postgres数据库帖子导入
- 清新简约创意三角毕业论文答辩PPT模板
- DISCORD-JS-CRUD:提升 Discord 机器人开发体验
- Node.js v4.3.2版本Linux ARM64平台运行时环境发布
- SQLight:C++11编写的轻量级MySQL客户端
- 计算机专业毕业论文答辩PPT模板
- Wireshark网络抓包工具的使用与数据包解析
- Wild Match Map: JavaScript中实现通配符映射与事件绑定
- 毕业答辩利器:蝶恋花毕业设计PPT模板
- Node.js深度解析:高性能Web服务器与实时应用构建
- 掌握深度图技术:游戏开发中的绚丽应用案例
- Dart语言的HTTP扩展包功能详解
- MoonMaker: 投资组合加固神器,助力$GME投资者登月
- 计算机毕业设计答辩PPT模板下载