全网最适合入门的面向对象编程教程:12 类和对象的Python实现-Python使用logging模块输出程序运行日志

来源:Freak嵌入式 通信无线 8 次阅读
摘要:摘要: 本文主要介绍了日志的定义和作用,以及Python内置日志处理的logging模块,同时简单说明了日志等级和logging模块的简易使用方法。 原文链接: FreakStudio的博客 往期推荐: 学嵌入式的你,还不会面向对象??! 全网最适合入门的面向对象编程教程:00 面向对象设计方法导论 全网最适合入门的面向对象编程教程:01 面向对象编程的基本概念 全网最适合入门的面向对象编程教程:

摘要:

本文主要介绍了日志的定义和作用,以及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单片机调试原理

肝了半个月,嵌入式技术栈大汇总出炉

电子计算机类比赛的“武林秘籍”

文档和代码获取:

可访问如下链接进行对文档下载:

本文档主要介绍如何使用 Python 进行**面向对象编程,需要读者对 Python 语法和单片机开发具有基本了解。相比其他讲解 Python 面向对象编程的博客或书籍而言,本文档更加详细、侧重于嵌入式上位机应用,以上位机和下位机的常见串口**数据收发、数据处理、动态图绘制等为应用实例,同时使用 Sourcetrail代码软件对代码进行可视化阅读便于读者理解。

相关示例代码获取链接如下:

正文

日志是记录系统中硬件、软件和系统问题的信息,同时还可以监视系统中发生的事件。用户可以通过它来检查错误发生的原因和程序运行历史记录。

在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
)

相关推荐
评论区

登录后即可参与讨论

立即登录