C/C++没有标准的日志库,很多人使用printf直接代替。但它有个缺点,就是不能对输出信息进行分级控制。使用log4cpp等似乎太重量级了。这里我给一个我自己经常使用的几个简单的日志函数
- #include <stdio.h>
- #if defined(DEBUG)
- #define debug(...) {fprintf(stderr, __VA_ARGS__); fflush(stderr);}
- #else
- #define debug(...)
- #endif
- #if defined(DEBUG) || defined(INFO)
- #define info(...) { fprintf(stderr, __VA_ARGS__); fflush(stderr);}
- #else
- #define info(...)
- #endif
- #if defined(DEBUG) || defined(INFO) || defined(ERROR)
- #define error(...) { fprintf(stderr, __VA_ARGS__); fflush(stderr);}
- #else
- #define error(...)
- #endif
- main()
- {
- debug("1 %d\n", 23);
- info("2 %d\n", 23);
- error("3 %d\n", 23);
- }
本文介绍了一种简化C/C++日志输出的方法,通过预定义宏实现不同级别的日志输出,便于在不同开发阶段灵活控制日志信息的显示。包括调试(debug)、信息(info)和错误(error)三个等级的日志函数,通过在Makefile或工程中定义DEBUG、INFO或ERROR来指定输出级别。
3万+

被折叠的 条评论
为什么被折叠?



