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

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

3天内不再提示

分享一个适合单片机的轻量级日志库

strongerHuang 来源: Github 2023-09-06 09:23 次阅读

单片机项目在很多时候都需要调试,通过日志诊断bug是常见的一种调试方法。

下面就给大家分享一个开源的适合单片机的轻量级日志库,只有log.c 和 log.h 两个文件,使用非常方便。

aca3dc78-4c4b-11ee-a25d-92fbcf53809c.png

用法

这个日志库的使用比较简单,新手完全可以胜任。

1、概述

在你的项目中添加log.c 和 log.h 文件。

提供 6 用于日志记录的类似函数的宏:

log_trace(const char *fmt, ...);
log_debug(const char *fmt, ...);
log_info(const char *fmt, ...);
log_warn(const char *fmt, ...);
log_error(const char *fmt, ...);
log_fatal(const char *fmt, ...);
每个函数都采用一个 printf 格式字符串,后跟其他参数
log_trace("Hello %s", "world")
生成一行给定格式的行打印到 stderr:
2026TRACEsrc/main.cHelloworld
2、接口描述

log_set_quiet(bool enable)

可以通过传递给函数来启用Quiet安静模式(不输入日志)。

启用此模式时,库不会向输出任何内容,但是将继续写入文件和回调(如果已设置)。truelog_set_quiet()stderr

log_set_level(int level)

可以使用该函数设置当前日志记录级别。不会将低于给定级别的所有日志写入 。默认情况下级别为LOG_TRACE, ,即不忽略任何内容。log_set_level()stderrLOG_TRACE

log_add_fp(FILE *fp, int level)

可以将一个或多个将写入日志的文件指针提供给库,通过使用函数。写入文件的数据输出采用以下格式:log_add_fp()

2047-03-11 2026 TRACE src/main.c Hello world

给定值以下的任何消息都将被忽略。如果库无法添加文件指针返回小于零的值。

log_add_callback(log_LogFn fn, void *udata, int level)

使用日志数据调用的一个或多个回调函数可以是 通过使用函数提供给库。回调 函数传递一个包含数字、、字符串、printf va_list和给定 .log_add_callback()log_Eventlinefilenamefmtvaleveludata

log_set_lock(log_LockFn fn, void *udata)

如果日志将从多个线程写入,则可以设置锁定函数。如果应该获取锁,或者是否应该释放锁并给定值,则该函数将传递布尔值。truefalseudata

const char* log_level_string(int level)

以字符串形式返回给定日志级别的名称。

LOG_USE_COLOR

如果使用-DLOG_USE_COLOR编译库,则在打印时将使用ANSI转义码。

开源协议

该库为免费软件库,但你需要对应的 MIT 许可证条款。

开源地址:

https://github.com/rxi/log.c

审核编辑:汤梓红

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

    关注

    6001

    文章

    43978

    浏览量

    620878
  • 调试
    +关注

    关注

    7

    文章

    527

    浏览量

    33625
  • 文件
    +关注

    关注

    1

    文章

    540

    浏览量

    24402
  • 开源
    +关注

    关注

    3

    文章

    2989

    浏览量

    41722

原文标题:分享一个适合单片机的轻量级日志库

文章出处:【微信号:strongerHuang,微信公众号:strongerHuang】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    简易的嵌入式系统日志记录方法

    在嵌入式设备中,很多场景都需要记录日志,特别是单片机这种存储资源有限的环境下,就需要一种轻量级的存储方法。
    发表于 10-31 14:17 811次阅读

    基于stm32单片机的cjsonc语言例程

    大家好,现在给大家提供基于stm32f030单片机的cjsonc语言例程。json是在互联网领域数据传输中较常用的协议,该协议比较轻量级
    发表于 12-02 22:14

    创建51轻量级操作系统

    创建51轻量级操作系统
    发表于 09-29 09:58

    10轻量级框架

    这些轻量级框架使用HTML5和CSS3标准来帮助您快速开发跨平台的Web移动应用和网站。
    发表于 07-17 08:25

    轻量级深度学习网络是什么

    轻量级深度学习网络概览
    发表于 04-23 14:53

    轻量级的ui框架如何去制作

    原创分享:自制轻量级单片机UI框架框架元素用户接口代码开源平时常看csdn,但是从来没有自己写过。正好这几天需要用单片机一个简易的ui界面,于是自己写了
    发表于 07-14 07:39

    木棉花:轻量级偏好数据学习笔记--沈泳鑫

    之前呢,我们需要先了解下数据有什么作用,我们学完之后才能够学以致用。顾名思义,数据肯定是具有存储功能的。这轻量级偏好数据的话呢,不仅
    发表于 09-04 14:30

    基于轻量级偏好数据,实现存储在本地应用数据的访问及操作

    1. 介绍轻量级偏好数据轻量级存储,主要用于保存应用的些常用配置。它是使用键值对的形式来存储数据的,保存数据时,需要给这条数据提供
    发表于 10-09 14:43

    如何自制轻量级单片机UI框架?

    如何自制轻量级单片机UI框架?
    发表于 10-14 06:13

    种超轻量级的flashKV数据存储方案分享

    tinyFlash种超轻量级的flash KV数据存储方案Github 地址:https://github.com/ospanic/tinyFlash设计原理本方案采用两扇区轮流使用的方法存储
    发表于 12-20 06:08

    单片机日志系统的设计

    单片机设计了一套简单的日志系统,通过日志系统提供的接口可以查看设备状态,并进行一些基本的调试。 日志系统通过串口输出,所以单片机需要
    发表于 04-02 14:26 5079次阅读
    <b class='flag-5'>单片机</b>对<b class='flag-5'>日志</b>系统的设计

    原创分享:自制轻量级单片机UI框架

    原创分享:自制轻量级单片机UI框架框架元素用户接口代码开源平时常看csdn,但是从来没有自己写过。正好这几天需要用单片机做一个简易的ui界面,于是自己写了一个轻量级的ui框架。发个cs
    发表于 11-05 15:20 29次下载
    原创分享:自制<b class='flag-5'>轻量级</b><b class='flag-5'>单片机</b>UI框架

    针对单片机开发的轻量级OTA组件

    今天为大家分享一款开源的,专为单片机开发的轻量级 OTA 组件:mOTA。
    的头像 发表于 12-26 09:36 965次阅读

    测评分享 | 如何在先楫HPM6750上运行轻量级AI推理框架TinyMaix

    推理框架,官方介绍如下:TinyMaix是面向单片机的超轻量级的神经网络推理库,即TinyML推理库,可以让你在任意单片机上运行轻量级深度学习模型。甚至在Ardui
    的头像 发表于 12-12 17:57 992次阅读
    测评分享 | 如何在先楫HPM6750上运行<b class='flag-5'>轻量级</b>AI推理框架TinyMaix

    轻量级数据库有哪些

    轻量级数据库有哪些 随着互联网和物联网等新一代信息技术的广泛应用,数据库系统也变得越来越重要。人们对于数据库数据库的可靠性、安全性和性能等要求也越来越高。与传统的关系型数据库系统相比,轻量级
    的头像 发表于 08-28 16:41 4307次阅读