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

日志系统在系统开发和调整过程中的重要性,想必大家应该都清楚。特别是项目出问题之后,却没有日志可以帮忙定位问题,就非常令人痛苦。 因为我们不可能一直通过调试器去单步调试程序,所以设备的运行日志显得尤为重要。
通常我们对日志有这些要求:
不同的日志级别(debug,warning, info, error, fatal); 日志打印要和printf一样简单易用; 能够设置日志级别; 占用空间小; 可配置,甚至可以禁用日志; 基于不同日志级别,支持颜色高亮; 可以自定义配置,时间戳; 支持rtos; 以上是比较基本的功能,但是在嵌入式设备中,有的时候我们希望可以保存设备的运行日志,我们需要以下的一些功能;
支持多种访问方式,比如串口终端,保存到嵌入式文件系统中; 支持shell命令行通过串口终端进行访问; 以上这些需求不一定会全部实现。
除了常用的log4c,log4cpp,下面给大家推荐3个非常不错的开源日志库,比较适合用在单片机的项目中。从开始的轻量,到后面的功能丰富,最后一个很强大,所以请耐心看到最后。
rxi_log 项目地址:https://github.com/rxi/log.c
基于 c99 实现的简单日志库,具体输出如下所示;
image-20211204142024466 具体用法
将源码中的log.c和log.h集成到你的项目中即可,需要打印日志的话,调用下面的api即可,如下所示;
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, ...); 除了这些api,还有log_set_quiet,log_set_lock,log_use_color等等,详情请看原项目。
ulog 项目地址:https://github.com/rdpoor/ulog
ulog 为嵌入式微控制器或任何资源有限的系统提供结构化的日志记录机制。它继承了流行的 log4c 和 log4j 平台背后的一些概念,但开销更低。
ulog 的一些特点:
ulog 易于集成到几乎任何环境中,由一个头文件和一个源文件组成,并且是用纯 c 编写的。 ulog 提供熟悉的严重级别(critical、error、warning、info、debug、trace)。 ulog 支持多个用户定义的输出(控制台、日志文件、内存缓冲区等),每个输出都有自己的报告阈值级别。 ulog 是具有最小依赖性的“积极独立”,仅需要 stdio.h、string.h 和 stdarg.h。 当您不使用 ulog 时,它不会妨碍您:如果 ulog_enabled 在编译时未定义,则不会生成日志记录代码。 ulog 已经过很好的测试。有关详细信息,请参阅随附的 ulog_test.c 文件。 color coding easylogger 项目地址:https://github.com/armink/easylogger
textcolor 这个项目我用了很长时间,强烈推荐,是rt-thread大佬的作品,已经集成到rtos的内部了,支持的功能非常丰富,基本满足各种开发的需求。
特点如下:
轻量,rom<1.6k, ram<0.3k; 支持多种访问模式(例如:终端、文件、数据库、串口、485、flash...); 日志内容可包含级别、时间戳、线程信息、进程信息等; 线程安全,并支持 异步输出 及 缓冲输出 模式; 支持多种操作系统(rt-thread、ucos、linux、windows...),也支持裸机平台; 日志支持 raw格式 ,支持 hexdump ; 支持按 标签 、 级别 、 关键词 进行动态过滤; 各级别日志支持不同颜色显示; 扩展性强,支持以插件形式扩展新功能。 以上只是这个项目的其中一部分,具体可以参考项目地址。
summary 希望大家在平常的开发中,重视日志的使用,每一个开发阶段设置不同级别的日志,不同的模块也分别设置模块的日志,这样方便定位出现一些问题,快速解决,提高效率。


更适合女生使用的智能化妆镜,它到底有多厉害
硅谷数模:IoT、AI将推动全球模拟IC市场持续增长
地平线推出首款嵌入式AI芯片要发力无人驾驶与智能安防
温度开关KSD301
NB-IoT之后,eMTC成蜂窝物联网的第二张牌
推荐3个非常不错的开源日志库
超千亿投资后,传感器产业大军奔涌“海上花园之城”
基于STM32调用固件库实现点灯
微软Xbox Scarlett将在2020年登场
小米MIUI9发布会在即:MIUI9已经开始内测,支持哪些机型?MIUI9适配机型一览,适配范围超广
LED显示屏产业格局生变?
借可穿戴市场爆发商机,相对温湿度传感器在多领域应用全面开花
华为NoF+存储网络解决方案实现颠覆性改进
LED球泡灯内部驱动电源分析
Verizon Media发布一款的隐私搜索引擎 将不会利用cookie对用户进行追踪
东芝计划建第7座闪存工厂(Fab7),与三星、Intel一决高下
研究人员开发出可用于全固态二次电池的新型电极结构
AI与物联网的结合开启人类智能化生活
高通Q-Sync技术,自动同步显示屏的刷新率与游戏帧率
VOC气体传感器用在手机到底合不合适?