良许Linux教程网 干货合集 分享一个适合单片机的轻量级日志库

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

在许多情况下,单片机项目需要进行调试,而通过日志来诊断bug是一种常见的调试方法。

接下来,我将与大家分享一个开源的轻量级日志库,适用于单片机项目。这个日志库只包含两个文件,分别是log.c和log.h,使用非常方便。

该日志库的设计目标是简单易用,旨在提供一种方便的方式来记录和输出运行时的调试信息。您可以将日志库集成到您的单片机项目中,并使用简洁的接口来记录和输出日志消息。

image-20231023204203531
image-20231023204203531

用法

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

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:

20:18:26 TRACE src/main.c:11: Hello world

2、接口描述

log_set_quiet(bool enable)

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

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

log_set_level(int level)

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

log_add_fp(FILE *fp, int level)

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

2047-03-11 20:18:26 TRACE src/main.c:11: Hello world

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

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

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

log_set_lock(log_LockFn fn, void *udata)

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

const char* log_level_string(int level)

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

LOG_USE_COLOR

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

以上就是良许教程网为各位朋友分享的Linu系统相关内容。想要了解更多Linux相关知识记得关注公众号“良许Linux”,或扫描下方二维码进行关注,更多干货等着你 !

137e00002230ad9f26e78-265x300
本文由 良许Linux教程网 发布,可自由转载、引用,但需署名作者且注明文章出处。如转载至微信公众号,请在文末添加作者公众号二维码。
良许

作者: 良许

良许,世界500强企业Linux开发工程师,公众号【良许Linux】的作者,全网拥有超30W粉丝。个人标签:创业者,CSDN学院讲师,副业达人,流量玩家,摄影爱好者。
上一篇
下一篇

发表评论

联系我们

联系我们

公众号:良许Linux

在线咨询: QQ交谈

邮箱: yychuyu@163.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

关注微博
返回顶部