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

审核编辑:汤梓红

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

    关注

    6029

    文章

    44480

    浏览量

    631590
  • 调试
    +关注

    关注

    7

    文章

    571

    浏览量

    33853
  • 文件
    +关注

    关注

    1

    文章

    560

    浏览量

    24652
  • 开源
    +关注

    关注

    3

    文章

    3207

    浏览量

    42277

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

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

收藏 人收藏

    评论

    相关推荐

    国产芯上运行TinyMaxi轻量级的神经网络推理-米尔基于芯驰D9国产商显板

    TinyMaix是面向单片机的超轻量级的神经网络推理,即TinyML推理,可以让你在任意单片机上运行
    的头像 发表于 07-05 08:02 1795次阅读
    国产芯上运行TinyMaxi<b class='flag-5'>轻量级</b>的神经网络推理<b class='flag-5'>库</b>-米尔基于芯驰D9国产商显板

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

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

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

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

    单片机日志系统的设计

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

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

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

    推荐3非常不错的开源日志

    除了常用的log4c,log4cpp,下面给大家推荐3非常不错的开源日志,比较适合用在单片机的项目中。从开始的轻量,到后面的功能丰富,最
    的头像 发表于 05-12 14:51 5016次阅读

    适合初学者超轻量级C语言网络—Dyad

    Dyad 是基于 C 语言的异步网络,旨在轻量级、可移植和易用。它既可用于创建小型独立服务器,也可用于为现有的项目提供网络支持。
    的头像 发表于 10-10 14:33 1738次阅读
    <b class='flag-5'>一</b>款<b class='flag-5'>适合</b>初学者超<b class='flag-5'>轻量级</b>C语言网络<b class='flag-5'>库</b>—Dyad

    TinyDB轻量级数据库有哪些特点呢

    TinyDB 是纯 Python 编写的轻量级数据库共只有1800行代码,没有外部依赖项。
    的头像 发表于 10-28 14:07 1395次阅读

    PSoC NeoPixel Easy轻量级

    电子发烧友网站提供《PSoC NeoPixel Easy轻量级.zip》资料免费下载
    发表于 11-17 09:48 0次下载
    PSoC NeoPixel Easy<b class='flag-5'>轻量级</b><b class='flag-5'>库</b>

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

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

    纯Python编写的轻量级数据库

    TinyDB 是纯 Python 编写的轻量级数据库共只有1800行代码,没有外部依赖项。
    的头像 发表于 02-24 10:32 773次阅读

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

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

    轻量级数据库有哪些

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

    基于Rust的Log日志介绍

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

    轻量级数据库有哪些类型

    关系型数据是目前最常见的数据类型,它将数据以表的形式存储,并使用SQL语言进行数据的管理和查询。虽然关系型数据通常较为庞大和复杂,但仍有
    的头像 发表于 12-20 11:29 1137次阅读