全网最适合入门的面向目标编程教程:12 类和目标的Python完成-Python运用logging模块输出程序运行日志
全网最适合入门的面向方针编程教程:12 类和方针的 Python 完成-Python 运用 logging 模块输出程序运转日志
摘要:
本文首要介绍了日志的界说和效果,以及 Python 内置日志处理的 logging 模块,一起简略说明晰日志等级和 logging 模块的简易运用办法。
原文链接:
FreakStudio 的博客
往期引荐:
学嵌入式的你,还不会面向方针??!
全网最适合入门的面向方针编程教程:00 面向方针规划办法导论
全网最适合入门的面向方针编程教程:01 面向方针编程的根本概念
全网最适合入门的面向方针编程教程:02 类和方针的 Python 完成-运用 Python 创立类
全网最适合入门的面向方针编程教程:03 类和方针的 Python 完成-为自界说类增加特点
全网最适合入门的面向方针编程教程:04 类和方针的Python完成-为自界说类增加办法
全网最适合入门的面向方针编程教程:05 类和方针的Python完成-PyCharm代码标签
全网最适合入门的面向方针编程教程:06 类和方针的Python完成-自界说类的数据封装
全网最适合入门的面向方针编程教程:07 类和方针的Python完成-类型注解
全网最适合入门的面向方针编程教程:08 类和方针的Python完成-@property装修器
全网最适合入门的面向方针编程教程:09 类和方针的Python完成-类之间的联系
全网最适合入门的面向方针编程教程:10 类和方针的Python完成-类的承继和里氏替换准则
全网最适合入门的面向方针编程教程:11 类和方针的Python完成-子类调用父类办法
更多精彩内容可看:
给你的 Python 加加快:一文速通 Python 并行计算
一文搞懂 CM3 单片机调试原理
肝了半个月,嵌入式技能栈大汇总出炉
电子计算机类竞赛的“武林秘籍”
一个MicroPython的开源项目集锦:awesome-micropython,包括各个方面的Micropython东西库
文档和代码获取:
可拜访如下链接进行对文档下载:
https://github.com/leezisheng/Doc
本文档首要介绍怎么运用 Python 进行面向方针编程,需求读者对 Python 语法和单片机开发具有根本了解。比较其他解说 Python 面向方针编程的博客或书本而言,本文档愈加具体、侧重于嵌入式上位机运用,以上位机和下位机的常见串口数据收发、数据处理、动态图制作等为运用实例,一起运用 Sourcetrail 代码软件对代码进行可视化阅览便于读者了解。
相关示例代码获取链接如下:https://github.com/leezisheng/Python-OOP-Demo
正文
日志是记载体系中硬件、软件和体系问题的信息,一起还能够监督体系中产生的作业。用户能够经过它来查看过错产生的原因和程序运转历史记载。
在 python3 中,内置了 logging 模块,用于进行日志相关的处理。日志是一种能够追寻某些软件运转时所产生作业的办法。软件开发人员能够向他们的代码中调用日志记载相关的办法来标明产生了某些作业。经过 log 的剖析,能够便利用户了解体系或软件、运用的运转状况,日志的效果能够简略总结为以下 3 点:
- ①程序调试;
- ②了解软件程序运转状况,是否正常;
- ③软件程序运转毛病剖析与问题定位。
logging 模块默许界说了以下几个日志等级用于差异时刻严峻性:
- ①DEBUG | 最具体的日志信息,典型运用场景是问题确诊;
- ②INFO | 信息具体程度仅次于DEBUG,一般只记载要害节点信息,用于承认一切都是依照咱们预期的那样进行作业;
- ③WARNING | 当某些不希望的作业产生时记载的信息(如,磁盘可用空间较低),可是此刻运用程序仍是正常运转的;
- ④ERROR | 因为一个更严峻的问题导致某些功用不能正常运转时记载的信息;
- ⑤CRITICAL | 当产生严峻过错,导致运用程序不能持续运转时记载的信息。
日志优先级:CRIRICAL>ERROR>WARNING>INFO>DEBUG,当日志等级设置为某个等级时,则低于该等级的日志将不输出。如日志等级设置为 INFO,则 DEBUG 等级的日志将不输出。
这儿,咱们设置日志优先级为 DEBUG 并运用 logging.info 办法输出调试信息。
此刻调试信息从终端输出,也能够保存为 log 文件:
# 在装备下日志输出方针文件和日志格局_
LOG_FORMAT = "%(asctime)s - %(levelname)s - %(message)s"
logging.basicConfig(filename='my.log', level=logging.DEBUG, format=LOG_FORMAT)