日志作为应用程序调试和维护的基本手段被广泛使用,像是谷歌的glog,java领域的log4j,它们都是功能强大的大型日志中间件。可是,在特殊的领域,比如是嵌入式开发领域,由于资源的限制,可能不能直接应用这些“庞大大物”,这里要介绍的clog,十分适合资源受限的嵌入式系统,其由C语言开发,整个代码不到400行,但它的功能可以满足基本的开发需求。

clog基本属性:

  1. 支持日志级别设置(DEBUG|INFO|ERROR|FATAL)
  2. 支持多线程,是线程安全的。
  3. 日志输出路径可配置。
  4. 单个日志文件输出,并且日志是循环覆盖的。
  5. 日志大小可配置,默认为5M字节。

clog代码框架


没错就是这么简单,只需要将clog.c和clog.h放到目标应用开发工程里,就可以实现日志的输出管理了。

void clog_exit(void);
int  clog_init(char *path);
void clog_set_log_size(int max_size);
void clog_set_log_level(int log_level);
void clog_log(int level, const char *fmt, ...);

上面是clog的所有接口,典型的使用方式如下:

int main(void)
{printf("Hello, CLOG! :)\n");clog_init("./log");//初始化日志模块,设置日志输出文件clog_set_log_size(1 * 1024 * 1024);//设置日志文件的最大值clog_set_log_level(EM_LOG_ERROR);//设置日志输出等级clog_log(EM_LOG_ERROR, "CLOG ERROR.");clog_log(EM_LOG_INFO,  "CLOG INFO.");clog_log(EM_LOG_DEBUG, "CLOG DEBUG.");clog_exit();
}

没错,就是这么简单。

极简系列|日志模块-clog相关推荐

  1. 极简系列|Makefile工程框架(可执行程序、静态库、动态库)

    作为一名Linux系统下的开发人员,平时工作中会经常用Makefile来构建应用开发框架.如果是特别简单的应用,几行makefile代码就可以搞定.但对于稍微上点规模的应用,其可能会包含若干个模块,复 ...

  2. STM32cubIDE 黑色主题_主题 | 翻新 innocence 灰极简系列 VX主题

    这个古早主题之前被我手滑误删了,被遗忘在角落很久啦,哈哈.发现还有一部分人在找它,那就抽空翻新了一下再发出来吧-已经支持最新版本(素材未加密),有需要的小可爱自行获取就好啦.主题有两套气泡,选择喜欢的 ...

  3. 简七32堂极简理财课——模块一:理财前一定要知道的财富真相

    文章目录 一.金钱的三个秘密 1.金钱是一种度量衡 2.钱的价值无时无刻不在发生着变化 3.复利的滚雪球效应 二.摸清富人赚钱思维 1.富人思维到底是什么 2.富人思维如何影响财富的 3.如何培养自己 ...

  4. 简七32堂极简理财课——模块二:理财规划,让你不再走弯路

    文章目录 六.理财第一步 1.理财规划 2.规划理财"五步走" 3.制定规划 根据生命周期制定目标 根据SMART原则设定目标 七.认真点清财富 1.培养财富亲密度,增强对钱的掌控 ...

  5. 简七32堂极简理财课——模块四:保险投资

    文章目录 十七.社保有什么用 1.五险 2.社保断缴怎么办 3.换工作换城市怎么办 4.没有单位的自由职业者或自雇职业怎么交社保 十八.如何买对保险 误区一:年轻身体好,不需要买保险 误区二:给孩子买 ...

  6. 简七32堂极简理财课——模块三:日常理财,让你时时刻刻都有钱

    文章目录 十一.两大储蓄法则 法则一:10/50法则 法则二:先储蓄再消费 3+1财富水池,收纳各种用钱需求 十二.四步资产记账法 1.三个原则,摆脱记流水账 2.四步资产记账法 十三.学会聪明的借钱 ...

  7. 【Deno】极简入门

    极简系列 极简入门 简介 Deno是一个 JavaScript/TypeScript 的运行时,默认使用安全环境执行代码,有着卓越的开发体验. Deno建立在 V8.Rust 和 Tokio 的基础上 ...

  8. 发明专利创造性答辩中的极简主义 ——试论答通风格对答通结果的影响

    原文载于:http://www.cypatent.com/cn/bow-67-1.htm 文章提供了一种答复创造性的文档模板,具有一定实用性,可供入门者参考,但实务中有更多变化,文内并未提及,以后再整 ...

  9. Log:日志之 Spdlog 极简用法示范『二』

    文章目录 关联 背景 用法示范 spdlog 输出到终端 spdlog 输出到文件 其它用法 成系列地址 简 述: 有上一篇中通过日志调研选型,决定采用 Spdlog 后,此篇开始介绍一些基础入门,先 ...

最新文章

  1. 【数据库】sqlite3常用命令及SQL语句
  2. 转换前台javascript传递过来的时间字符串到.net的DateTime
  3. Fedora中安装 Shutter步骤介绍
  4. NumPy 手写所有主流 ML 模型,由普林斯顿博士后 David Bourgin打造的史上最强机器学习基石项目!...
  5. UDP,你要耗子喂汁呀!
  6. LEMP+memcached
  7. Python学习笔记(五) Python高级特性
  8. 云游戏之大冒险:5G,等还是不等 | 专访云格致力陈浩
  9. tomcat GET 编码疑惑
  10. MySql Workbench常用快捷键修改MySqlWorkBench快捷键
  11. html做出文字凹凸效果,css3怎么实现字体凹陷凸出效果?(附代码)
  12. mysql版 雪花算法_雪花算法如何生成id
  13. Excel如何合并相同项单元格
  14. 2021级天狮学院经济管理学院市场营销专升本专业辅导员及新生群
  15. 让你的 Mac 用上最美的屏保,Aerial 使用教程
  16. 三维重建——孔洞填补算法
  17. docker exec -it container1 /bin/bash 异常
  18. 动态规划!!!动态规划!!!
  19. JSP页面之间数据传递,JSP页面跳转
  20. plsql 客户端字符集_plsql查看数据库字符集

热门文章

  1. matmul/mm 函数用法介绍
  2. (待补充)【读书笔记】20190827《高效能人士的七个习惯》——柯维
  3. 安全编译选项检测工具
  4. easyui---formatter
  5. 多种方式进行数据库的批量删除(删除用户信息为例)
  6. (大数据分析学习)16、标准化变量的广义样本方差和总样本方差
  7. 2019计算机考研普通院校,2019计算机考研:明确自己与目标院校的差距
  8. 读书笔记 - 9 lies abouts work
  9. myeclipse破解文件不成功的解决办法,cracker.jar
  10. linux下网络工具之tcpdump精析