当程序运行出现问题时,日志记录是一种非常有用的工具,它可以帮助我们追踪和定位问题。在 MicroPython 中,可以使用 log 模块来记录程序运行中的信息。本文将介绍 log 模块的使用方法和常见功能。

日志级别

log.DEBUG

常量,用来标识 LOG 等级,最详细的日志信息,通常只在开发和调试时使用。

log.INFO

常量,用来标识 LOG 等级,确认一切按预期运行。

log.WARNING

常量,用来标识 LOG 等级,表明发生了一些意外,或者指示可能出现问题的情况,但仍然可以继续执行。

log.ERROR

常量,用来标识 LOG 等级,由于更严重的问题,应用程序已不能执行某些功能。

log.CRITICAL

常量,用来标识 LOG 等级,指出应用程序中的严重错误,可能导致应用程序停止运行。

日志设置

log.basicConfig

设置日志输出级别,默认为 log.INFO,系统只会输出 level 数值大于或等于该 level 的的日志结果。

log.basicConfig(level)

参数描述:

  • level - 日志等级

返回值描述:

示例:

import log
log.basicConfig(level=log.INFO)

log.set_output

设置日志输出的位置,目前只支持 uart 和 usys.stdout

log.set_output(out)

参数描述:

  • out - 日志输出位置,输出到指定串口或者交互口,默认不设置为交互口输出,类型参考示例

返回值描述:

示例:

import log
log.basicConfig(level=log.INFO)
Testlog = log.getLogger("TestLog")# 设置输出到debug口
from machine import UART
uart = UART(UART.UART0, 115200, 8, 0, 1, 0)log.set_output(uart)Testlog.info("this is a Test log") # 会输出带对应的uart口# 从uart口切换成交互口输出
import usys
log.set_output(usys.stdout)Testlog.info("this is a Test log") # 会输出到交互口

日志输出

log.getLogger

获取 log 对象,对象支持输出不同等级的 log 信息。

Testlog = log.getLogger(name)

参数描述:

  • name - 当前 log 对象的主题信息,字符串类型

返回值描述:

  • log 操作句柄,也可理解成 log 对象,拥有 log 输出的方法。

log.debug

输出 DEBUG 级别的日志。

Testlog.debug(msg)

参数描述:

  • msg - 日志内容,字符串类型

log.info

输出 INFO 级别的日志。

Testlog.info(msg)

参数描述:

  • msg - 日志内容,字符串类型

log.warning

输出 WARNING 级别的日志。

Testlog.warning(msg)

参数描述:

  • msg - 日志内容,字符串类型

log.error

输出 ERROR 级别的日志。

Testlog.error(msg)

Copy

参数描述:

  • msg - 日志内容,字符串类型

log.critical

输出 CRITICAL 级别的日志。

Testlog.critical(msg)

参数描述:

  • msg - 日志内容,字符串类型

示例:

import log# 设置日志输出级别
log.basicConfig(level=log.INFO)
# 获取logger对象,如果不指定name则返回root对象,多次使用相同的name调用getLogger方法返回同一个logger对象
Testlog = log.getLogger("Quec")Testlog.error("Test error message!!")
Testlog.debug("Test debug message!!")
Testlog.critical("Test critical message!!")
Testlog.info("Test info message!!")
Testlog.warning("Test warning message!!")

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/pingmian/85015.shtml
繁体地址,请注明出处:http://hk.pswp.cn/pingmian/85015.shtml
英文地址,请注明出处:http://en.pswp.cn/pingmian/85015.shtml

如若内容造成侵权/违法违规/事实不符,请联系英文站点网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【JVM】- 类加载与字节码结构1

类文件结构 ClassFile {u4 magic;u2 minor_version;u2 major_version;u2 constant_pool_count;cp_info constant_pool[constant_pool_count-1];u2 access_flags;u2 this_class;u2 …

Android及Harmonyos实现图片进度显示效果

鸿蒙Harmonyos实现,使用ImageKnife自定义transform来实现图片进度效果 import { Context } from ohos.abilityAccessCtrl; import { image } from kit.ImageKit; import { drawing } from kit.ArkGraphics2D; import { GrayScaleTransformation, PixelMapTransform…

linux 中的自动化之systemd

linux | 自动化之systemd linux 中的自动化之systemd 学习总是循序渐进的。 linux 中程序的自动化,包括早期手动启动,查看启动后的日志、分析启动情况,再到后面封装脚本(大致要求启动后检查是否挂了,挂了拉起,没挂跳过…

【编译工具】CodeRider 2.0:驭码 CodeRider 2.0 全流程智能研发协作平台深度技术测评报告

目录 前言:CodeRider 2.0 简介 (1)核心功能 (2)适用场景 (3)优势 一、产品概述与技术架构 (1)产品定位与核心价值 (2)技术架构解析 &…

抓包 TCP 四次挥手报文

文章目录 抓包 TCP 三次握手报文一、第一次挥手二、第二次挥手三、第三次挥手四、第四次挥手 抓包 TCP 三次握手报文 抓包 TCP 三次握手报文 一、第一次挥手 二、第二次挥手 三、第三次挥手 四、第四次挥手

KMP(Kotlin Multiplatform)发布Web版本乱码

一、背景 最近用KMP尝试运行在Android、iOS、desktop都成功了,网络数据访问也正常。 可是当运行wasmJs的时候遇到了2个较大的问题。 中文字体出现乱码。 出现了跨域问题。 首先贴一下每个平台的运行截图: Android iOS Desktop 二、问题 当web跑起…

一个应用程序或移动网站项目提供最佳UI解决方案

一个应用程序或移动网站项目提供最佳UI解决方案 此套件是用大量的爱和辛勤工作制作的,为您的下一个应用程序或移动网站项目提供最佳解决方案。120个完全可编辑的界面,分为10个类别和2种文件格式,Photoshop和AI。简单易用的结构将允许您以所…

Android studio打包生成jar包文件

Android studio打包生成jar包文件 一 项目配置1.修改 app/build.gradle2.修改 AndroidManifest.xml 二 打 Jar 包1.修改 app/build.gradle2.编译生成 Jar 包 一 项目配置 1.修改 app/build.gradle 将com.android.application改成com.android.library注释掉applicationId 2.…

JAVA类加载机制(jdk8)

三句话总结JDK8的类加载机制: 类缓存:每个类加载器对他加载过的类都有一个缓存。双亲委派:向上委托查找,向下委托加载。沙箱保护机制:不允许应用程序加载JDK内部的系统类。 JDK8的类加载体系 类加载器的核心方法 //…

更进一步深入的研究ObRegisterCallBack

引入 我们如果想hook对象的回调,在上篇文章里我们已经知道了对象回调函数存在一个列表里面,我们通过dt可以看见,这里他是一个LIST_ENTRY结构,但是实际调用的时候,这样是行不通的,说明它结构不对 0: kd> dt _OBJEC…

Nginx-3 Nginx 的负载均衡策略

Nginx-3 Nginx 的负载均衡策略 Nginx 的负载均衡其实就是指将请求按照一定的策略转发给服务集群中的一台,提高了服务集群的可用性,解决数据流量过大、网络负荷过重的问题。 AKF 扩展立方体 分为 3 个方向负载: x 轴:增加实例数…

Wiiu平台RetroArch全能模拟器美化整合包v1.18

这款WiiU平台RetroArch全能模拟器美化整合包v1.18的亮点包括: 1. 18款平台完美兼容:无论你是喜欢NES时代的经典游戏,还是钟爱SNES、GBA等平台的大作,这款整合包都能满足你的需求,让你尽情畅玩游戏。 2. 三款自制主题&a…

MyBatis原理

Mybatis执行过程为:接口代理->sqlSession会话->executor执行器->JDBC操作 一、接口代理 Mybatis根据Mapper接口,动态生成相应实现类 二、SqlSession介绍 MyBatis核心对象SqlSession介绍 - MyBatis中文官网 三、Executor执行器介绍 精通My…

升级内核4.19-脚本

#bash cd /root yum remove -y kernel-tools-3.10.0-1160.el7.x86_64 yum remove -y kernel-tools-libs-3.10.0-1160.el7.x86_64tar -xvf rhel-7-amd64-rpms.tar.gz cd /root/rhel-7-amd64-rpms #安装依赖、包括socat&conntrack yum localinstall -y *.rpm --skip-broken#升…

全面理解 JVM 垃圾回收(GC)机制:原理、流程与实践

JVM 的 GC(Garbage Collection)机制是 Java 程序性能的关键支柱。本文将从堆内存布局、回收原理、GC 算法、流程细节、并发收集器机制等维度,系统讲清楚 GC 的底层运作原理和优化思路。 一、JVM 堆内存结构 Java 堆是 GC 管理的主要区域&am…

runas命令让其他用户以管理员权限运行程序

RUNAS 用法: RUNAS使用示例: runas /noprofile /user:mymachine\administrator cmd #本机Administrator管理员身份执行CMD,/noprofile为不加载该用户的配置信息。runas /profile /env /user:mydomain\admin “mmc %windir%\system32\dsa.msc” #本机上…

实战指南:部署MinerU多模态文档解析API与Dify深度集成(实现解析PDF/JPG/PNG)

MinerU web api部署 MinerU 能够将包含图片、公式、表格等元素的多模态 PDF、PPT、DOCX 等文档转化为易于分析的 Markdown 格式。 克隆 MinerU 的仓库 git clone https://github.com/opendatalab/MinerU.gitcd 到 projects/web-api cd projects/web-api在可以科学上网的情况下…

向量外积与秩1矩阵的关系

向量外积与秩1矩阵的关系 flyfish 向量外积是构造秩1矩阵的基本工具,其本质是用两组向量的线性组合刻画矩阵的行和列相关性;任意秩1矩阵必可表示为外积,而低秩矩阵(秩 k k k)可分解为 k k k 个外积矩阵的和&#x…

设计模式-创建型模式(详解)

创建型模式 单例模式 一个类只允许创建一个对象,称为单例。 单例体现:配置类、连接池、全局计数器、id生成器、日志对象。 懒汉式 (线程不安全) 单例:【不可用】 用到该单例对象的时候再创建。但存在很大问题,单线程下这段代…