Python日志记录logging模块使用详解
解读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模块是一个功能强大且灵活的日志记录工具,能够满足大多数开发者的需求。
下载后可阅读完整内容,剩余6页未读,立即下载
- 粉丝: 6
- 资源: 957
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 十种常见电感线圈电感量计算公式详解
- 军用车辆:CAN总线的集成与优势
- CAN总线在汽车智能换档系统中的作用与实现
- CAN总线数据超载问题及解决策略
- 汽车车身系统CAN总线设计与应用
- SAP企业需求深度剖析:财务会计与供应链的关键流程与改进策略
- CAN总线在发动机电控系统中的通信设计实践
- Spring与iBATIS整合:快速开发与比较分析
- CAN总线驱动的整车管理系统硬件设计详解
- CAN总线通讯智能节点设计与实现
- DSP实现电动汽车CAN总线通讯技术
- CAN协议网关设计:自动位速率检测与互连
- Xcode免证书调试iPad程序开发指南
- 分布式数据库查询优化算法探讨
- Win7安装VC++6.0完全指南:解决兼容性与Office冲突
- MFC实现学生信息管理系统:登录与数据库操作