0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

全栈开发进阶指南:LuatOS-log库从入门到实战!

青山老竹农 ? 来源:jf_82863998 ? 作者:jf_82863998 ? 2025-05-15 16:12 ? 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

本文将带你深入探索LuatOS系统中log库的核心原理与实战技巧,通过代码示例解析日志管理、错误追踪及性能优化的最佳实践,助力全栈工程师构建更稳健的物联网应用。

今天,我们一起来认识LuatOS的log库!

wKgZO2ghlR-ARhMJAAIfkz-JEfc587.png

一、 log.info()

log info()主要打印一些正常的信息。比如,记录程序的启动信息、某个模块的初始化完成、重要业务流程的执行等。

我们利用log.info(),可以清晰了解程序的执行顺序。

wKgZO2ghlVqAb5swAAEFO431ics424.png

tag为日志标识,标识日志来自哪个模块或功能。

比如:在一个包含多个子系统的应用程序中,为每个子系统的日志添加相应的标签,开发人员就能快速定位到问题所在的模块。

在一个复杂的Lua脚本里,使用log.info() 函数在关键代码位置,设置输出信息,就能知道程序是否按预期顺序执行。

如果你想在程序开头看是否会记录到模块初始化,代码可以这样写:

wKgZO2ghlZWAeTBSAACUxPsAfPk323.png

当模块完成初始化,就能在日志打印里看到相关信息了。

二、 log.debug()

log.debug()主要用在开发和调试阶段,记录详细的调试信息。

这些信息方便我们理解程序的执行流程、变量的变化。在开发完成后,可以根据需要关闭这些调试信息,以减少日志量和提高性能。

wKgZPGghlfyAECsgAAENAnjvLYM098.png


具体使用场景如下:

wKgZPGghlhuACzniAADU900Mv5Q587.png

当程序执行到log.debug("进入add函数,a = ".. a.. ", b = ".. b)时,它会输出一条日志,明确显示程序已经进入了add函数。

三、log.warn()

log.warn()主要用于记录一些警告信息,表示程序遇到了一些可能存在潜在的风险,还没有导致程序出错,但可能需要我们关注的部分。

wKgZO2ghll6ANIpJAAEF9GmBwp0429.png

比如:当文件大小超过1MB,你想输出一条警告信息提醒用户,你就可以在代码中使用log.warn()。

wKgZO2ghln-AVcxNAADDIxwqlPc822.png

当文件大小超过1MB时,程序就会执行log.warn()这行代码,输出一条警告信息,提醒开发者注意下文件大小。

四、 log.error()

log.error()主要用于记录错误信息,当程序发生错误或异常情况时,使用这个函数来记录相关的错误信息,以便开发者能够快速定位和解决问题。

wKgZPGghlriAGwIEAAEHg1MUI0k954.png


具体应用场景:

wKgZO2ghlt6AUEYsAACl2TIg1YQ923.png

当除数为0时,输出错误信息:除数不能为0。

五、log.setLevel()

以上是我们常用到的几种日志类型。但有时候,debug是调试时用到的,并不想让用户看到我们的debug类型日志,难道要一个一个删除吗?

不用!我们可以用log.setLevel()函数设置日志级别。

在LuatOS的log库中,日志有如下几种类型:

LOG_SILENT(无日志模式)

LOG_DEBUG(debug日志模式)

LOG_INFO(info日志模式)

LOG_WARN(warning日志模式)

LOG_ERROR(error日志模式)

日志级别从低到高依次为:DEBUG < INFO < WARN < ERROR

只有日志级别大于或等于当前设置的级别时,该日志才会被输出。

比如日志设置为INFO级别时:DEBUG级别的日志不会输出,而INFO、WARN、ERROR级别的日志会输出。

wKgZO2ghmAKAC8gTAAF4hR6DYoM816.png

比如:想设置为INFO日志模式,不要输出debug日志信息,代码就这样写:

wKgZPGghmHWABqC4AAAq44lECOY932.png

其余模式同理。

六、log.getLevel()

如果想要获取到当前设置的日志级别,我们就需要用到 log.getLevel()函数。

wKgZPGghmLCACyPsAADc-AXm7vA582.png

示例如下:

wKgZPGghmN2AEw9nAADu1iEQ6eA101.png


七、log.style()

设置日志风格,需要使用到log.style(val)函数。

LuatOS的log库提供了3种日志风格,分别为:默认风格0;调试风格1;调试风格2。

这几种方式的日志呈现形式不同,根据个人习惯调整。

wKgZO2ghmQqAdupDAAE5VyYA-AQ320.png


示例如下:

wKgZPGghmSeANH1QAAB2p0Nhoso858.png

以log.info("ABC", "DEF", 123) 为例, 假设该代码位于main.lua的12行。

那么三种风格的输出样式为:

默认风格0的输出样式为:I/user.ABC DEF 123

调试风格1的输出样式为:I/main.lua:12 ABC DEF 123

对比默认风格0,增加了文件名和代码所在行数。

调试风格2的输出样式为:I/user.ABC main.lua:12 DEF 123

对比其他风格,信息位置排放有所区别。

关于log库的内容就分享到这里了~

审核编辑 黄宇

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • Log
    Log
    +关注

    关注

    0

    文章

    16

    浏览量

    11563
  • LuatOS
    +关注

    关注

    0

    文章

    104

    浏览量

    2308
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    解锁LuatOS-log工程师的日志管理实战课!

    针对开发者设计的实战教程,本文聚焦LuatOS平台log
    的头像 发表于 05-12 15:23 ?901次阅读
    解锁<b class='flag-5'>LuatOS-log</b><b class='flag-5'>库</b>:<b class='flag-5'>全</b><b class='flag-5'>栈</b>工程师的日志管理<b class='flag-5'>实战</b>课!

    野火STM32开发实战指南 火哥的书 开卖了

    什么、该如何进阶等。另一个是通过对的了解和GPIO的学习,让读者快速掌握STM32的开发方法,这是入门的第一步。第二部分(第6~16章)是
    发表于 07-27 14:46

    【图书分享】《STM32开发实战指南

    一步讲解了结合嵌入式实时操作系统、TCP/IP协议进行嵌入式系统开发的方法,让读者循序渐进、系统地掌握基于STM32官方进行开发的方法。 《STM32
    发表于 03-13 17:01

    stm32的开发实战指南

    有谁有stm32的开发实战指南,给我来一份,谢了!1211639441
    发表于 10-18 21:07

    求STM32开发实战指南.........

    跪求STM32开发实战指南...............................................
    发表于 11-29 13:54

    STM32开发实战指南

    STM32开发实战指南,一共5个部分,供大家参考
    发表于 03-09 08:20

    《STM32 HAL 开发实战指南—基于H750》

    受限于单个文件不能超过5M,所以分成10个压缩包分别上传。 野火STM32系列丛书《STM32 HAL 开发实战指南—基于H750》,内容殷实,讲解详细,适合
    发表于 01-14 10:09

    如何对STM32F10x标准开发进行概览

    ,包括物联网开发基础实战、IoT-ARM结构下的各类智能产品的设计、STM32的开发、全国电赛优秀作品分析等,如有需要请自行领取)STM
    发表于 12-06 06:54

    LabVIEW入门实战开发100例

    LabVIEW入门实战开发100例LabVIEW入门实战开发100例LabVIEW
    发表于 02-18 11:44 ?0次下载

    STM32开发实战指南

    STM32开发实战指南-刘火良,电子 epub格式,清晰非扫描
    发表于 10-27 16:25 ?24次下载

    javaweb入门实战

    JavaWeb是一门使用Java语言开发Web应用程序的技术,它广泛应用于各种网站和在线应用程序的开发。对于想要学习和使用JavaWeb技术的开发者来说,
    的头像 发表于 12-03 11:44 ?1830次阅读

    LuatOS开发之4G模组随机数(random)|实战指南

    本次学习的实战是关于4G模组LuatOS开发的随机数示例指南,希望大家有所收获。
    的头像 发表于 11-30 09:51 ?824次阅读
    <b class='flag-5'>LuatOS</b><b class='flag-5'>开发</b>之4G模组随机数(random)|<b class='flag-5'>实战</b><b class='flag-5'>指南</b>

    爬虫数据获取实战指南入门高效采集

    爬虫数据获取实战指南入门高效采集 ? ? 在数字化浪潮中,数据已成为驱动商业增长的核心引擎。无论是市场趋势洞察、竞品动态追踪,还是用户
    的头像 发表于 03-24 14:08 ?654次阅读

    快速入门——LuatOS:sys多任务管理实战攻略!

    在嵌入式开发中,多任务管理是提升系统效率的关键。本教程专为快速入门设计,聚焦LuatOS的sys,通过实战案例带你快速掌握多任务创建、调度
    的头像 发表于 05-29 14:36 ?285次阅读
    快速<b class='flag-5'>入门</b>——<b class='flag-5'>LuatOS</b>:sys<b class='flag-5'>库</b>多任务管理<b class='flag-5'>实战</b>攻略!

    入门精通:电商API的开发指南

    在当今电商蓬勃发展的时代,API(应用程序编程接口)作为系统间的“桥梁”,已成为构建高效、可扩展电商平台的核心。开发涉及从前端用户界面后端服务器、数据
    的头像 发表于 07-23 15:55 ?154次阅读
    <b class='flag-5'>入门</b><b class='flag-5'>到</b>精通:电商API的<b class='flag-5'>全</b><b class='flag-5'>栈</b><b class='flag-5'>开发指南</b>