一个用纯 C99 写的小型高效日志库,只有两个文件,不需要任何第三方依赖
log.c是一款仅含log.c和log.h两个文件的纯C99日志库,无需任何第三方依赖即可快速集成到嵌入式项目中。它提供六种日志级别、多输出目标(stderr/文件/回调)、线程安全锁机制等核心功能,完美解决printf混乱、错误码映射繁琐等痛点。支持彩色输出、自定义回调对接RTOS队列,虽无内置日志滚动功能,但可通过源码扩展满足需求。几十KB体积、零学习成本,是嵌入式开发者告别日志烦恼的首选方案。
最流行的开源硬件平台
log.c是一款仅含log.c和log.h两个文件的纯C99日志库,无需任何第三方依赖即可快速集成到嵌入式项目中。它提供六种日志级别、多输出目标(stderr/文件/回调)、线程安全锁机制等核心功能,完美解决printf混乱、错误码映射繁琐等痛点。支持彩色输出、自定义回调对接RTOS队列,虽无内置日志滚动功能,但可通过源码扩展满足需求。几十KB体积、零学习成本,是嵌入式开发者告别日志烦恼的首选方案。
写了多年C语言,从满屏printf到各种臃肿的日志框架,直到遇见log.c才找到最佳答案。这个纯C99实现的日志库只有两个文件,零第三方依赖,却提供了时间戳、文件行号、颜色区分、日志分级、文件输出、回调扩展等完整功能。支持多线程安全,可一键静音,生产环境调高日志级别即可节省磁盘和性能。简单到扔进项目就能用,强大到覆盖99%的日志需求,是嵌入式和小型项目的理想选择。在这个动不动就搞几百兆框架的年代,这种几百行代码解决核心问题的小而美,简直就是一股清流。
写 C 语言最怕日志管理混乱,printf 调试效率低且难维护,重型库又依赖繁琐。本文推荐一款纯 C99 编写的轻量级日志库 log.c,仅需 log.c 和 log.h 两个文件即可集成,无任何第三方依赖。它支持六级日志分级、彩色输出、文件行号追踪,并具备线程安全锁接口与自定义回调功能。无论是嵌入式开发还是服务器后端,它都能在保证极简的同时提供企业级功能。支持动态调整日志级别,生产环境可静音运行,亦可将日志钩子对接远程服务。告别臃肿框架,体验小而美的编程乐趣,让日志管理变得简单高效,是 C 开发者不可错过的实用工具。
uLog是一款专为单片机、裸机系统设计的轻量级日志库,仅需两个C文件即可集成。它支持通过宏控制编译开关,实现日志功能的随用随开、随关随走。库支持多输出通道,每个通道可独立设置日志级别阈值,完美解决嵌入式开发中的调试痛点。源码体积不到2KB,关闭后零代码嵌入,是STM32、ESP32等资源紧张MCU的理想选择。
log.c是一个纯C99编写的轻量级日志库,仅包含log.c和log.h两个文件,无需任何第三方依赖。它统一了嵌入式开发中的日志接口,提供TRACE到FATAL六个日志级别,支持多输出目标(串口、文件、回调),并具备线程安全特性。文章详细介绍了其安装使用方法、核心API及优缺点对比,是嵌入式项目日志管理的理想选择。
uLog是一款专为资源受限嵌入式设备设计的超轻量级结构化日志库,采用纯C语言实现,仅需一个.h和一个.c文件即可使用。它支持CRITICAL、ERROR、WARNING、INFO、DEBUG、TRACE六档日志级别,可实现多路输出(console、文件、内存buffer),每个输出通道独立设置阈值。最核心的特性是编译期开关,定义ULOG_ENABLED时生成日志代码,未定义时完全零开销、零占用。无需任何外部依赖,适合各种裸机或RTOS环境,是嵌入式开发者的理想日志解决方案。