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

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

3天内不再提示

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

合宙LuatOS 来源:合宙LuatOS 作者:合宙LuatOS 2025-05-12 15:23 次阅读

针对全栈开发者设计的实战教程,本文聚焦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库的内容就分享到这里了~

审核编辑 黄宇

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

    关注

    0

    文章

    3

    浏览量

    903
  • LuatOS
    +关注

    关注

    0

    文章

    96

    浏览量

    2200
收藏 人收藏

    评论

    相关推荐
    热点推荐

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

    本文将带你深入探索LuatOS系统中log的核心原理与实战技巧,通过代码示例解析日志管理、错误
    的头像 发表于 05-15 16:12 2279次阅读
    <b class='flag-5'>全</b><b class='flag-5'>栈</b>开发进阶指南:<b class='flag-5'>LuatOS-log</b><b class='flag-5'>库</b>从入门到<b class='flag-5'>实战</b>!

    工程师是什么

    工程师的个人看法。在我眼里,工程师是下能玩硬件和驱动,上能写网页和js,中间能玩转服务
    的头像 发表于 08-28 10:11 7378次阅读

    工程师的尴尬处境

    今天无意百度了下“工程师”,发现自己的处境和百科里描述还真挺像的。
    的头像 发表于 09-13 10:45 3728次阅读

    如何定义工程师和DevOps

    工程师(本文称「」开发者)和 DevOps 无疑是近期最火的词汇,无论是国外还是国内。而且火爆程度远超于想象。
    的头像 发表于 09-21 10:14 4453次阅读

    工程师的观点认知

    深以为然,所以,工程师应该分为Web和App
    的头像 发表于 10-10 10:08 2610次阅读

    Web工程师是什么

    工程师(Full-Stack Engineer),是一个在IT行业圈子里越来越热门的话题,无论是像Facebook这样的大型公司,还是刚刚起步的初创公司,都开始招募
    的头像 发表于 01-26 10:57 1.2w次阅读

    工程师的定义及价值

    (Full Stack)工程师,也可以叫工程师,无论是前端知识,还是后端架构你都要了解。甚至有些调皮的程序员这样理解
    的头像 发表于 03-21 10:47 3204次阅读

    什么是工程师 自己是否应该成为一名工程师

    你常常听说“工程师”这个叫法吧,不过这到底表示什么意思呢,你觉得自己应该成为一名工程师
    的头像 发表于 03-21 11:00 3366次阅读

    什么是工程师

    工程师(Full-Stack Engineer):一个能处理数据、服务器、系统工程和客户端的所有工作的
    的头像 发表于 05-31 16:14 2.5w次阅读

    全面了解工程师

    最近有好多网友问我关于工程师的事情,从大家的口气中,能听出大家都认为工程师是一个非常高大
    的头像 发表于 08-28 16:13 2694次阅读

    工程师与普通工程师的区别

    前端工程师,后端工程师以及工程师都做什么?各自的薪水状况又如何?
    的头像 发表于 09-02 15:40 5766次阅读

    工程师真的不全

    工程师是指掌握多种技能,并能利用多种技能独立完成产品的人,也叫工程师(同时具备前端和后台能力),英文Full Stack engin
    的头像 发表于 09-17 11:08 1990次阅读

    真的有开发工程师

    工程师是他们最细化的工程师,同时也是价值最大的,
    的头像 发表于 09-17 11:34 3224次阅读

    为什么工程师会存在争议

    如何成为一名工程师(full stack developer)?互联网最热的话题之一。LinkedIn, Facebook上标榜自己是
    的头像 发表于 10-11 16:58 3602次阅读

    基于Rust的Log日志介绍

    了一种简单的方法来实现日志记录,本文将介绍如何使用Rust的Log作为日志门面,并结合env_logger和log4rs两个
    的头像 发表于 09-19 14:49 3956次阅读