您的位置:首页 > 编程语言 > C语言/C++

简易C/C++日志代码实现

2016-03-06 19:10 399 查看
C/C++没有标准的日志库,很多人使用printf直接代替。但它有个缺点,就是不能对输出信息进行分级控制。使用log4cpp等似乎太重量级了。这里我给一个我自己经常使用的几个简单的日志函数

[cpp] view
plain copy

#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);

}

在makefile或工程中定义DEBUG、INFO或ERROR分别指定不同的输出级别,如果不定义则什么也不输出。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: