分享自己写的一个简化版LOG输出宏
来源:互联网 发布:软件压力测试报告 编辑:程序博客网 时间:2024/06/05 15:33
extern int verbose;#define DBG(...) XLOG(4, "DBG", __VA_ARGS__)#define INFO(...) XLOG(3, "INF", __VA_ARGS__)#define WRN(...) XLOG(2, "WRN", __VA_ARGS__)#define ERR(...) XLOG(1, "ERR", __VA_ARGS__)#define OUT(...) XLOG(0, "OUT", __VA_ARGS__)#define XLOG(level, LOG_LEVEL, ...) \do{\ if(verbose >= (level)) {\ time_t _tm = 0;\ struct tm log_tm = {0};\ time(&_tm);\ localtime_r(&_tm, &log_tm);\ fprintf(stdout, "%4d-%2.2d-%2.2d %2.2d:%2.2d:%2.2d %3s | ", log_tm.tm_year+1900, log_tm.tm_mon+1, log_tm.tm_mday, log_tm.tm_hour, log_tm.tm_min, log_tm.tm_sec, LOG_LEVEL);\ fprintf(stdout, __VA_ARGS__);}\ }\}while(0)
verbose是全局变量,用来限制输出等级,小于此等级的信息会被输出,例如,如果verbose = 4,则全部信息都会输出,如果verbose = 3,则DBG信息不会输出。
使用方法同printf,只是把printf替换为DBG、INFO等。
DBG("abcdefg%d.\n", a);
这是一个非常简化版的,并且只能输出到屏幕,只需要将其加到.h文件就可以使用。
另一个版本需要.c和.h,使用也更复杂:
0 0
- 分享自己写的一个简化版LOG输出宏
- 自己写的一个支持200人在线的聊天室服务器(简化版)-------主程序文件:chatServer
- 一个难题: 怎样写一个输出自己源代码的程序?
- 一个难题: 怎样写一个输出自己源代码的程序?
- 分享一个自己写的JFinal的BaseController (1)
- 分享一个自己写的JFinal的BaseController (2)
- 分享一个自己写的JFinal的BaseController (3)
- 分享自己写的一个贪吃蛇的游戏(Linux)
- 分享一个自己写的IOCP服务器的类源码
- RPG/400 自己写的一个小实例分享!(1)
- RPG/400 自己写的一个小实例分享!(2)
- RPG/400 自己写的一个小实例分享!(3)
- 分享一个自己写的J2ME SAX XML解析器.
- 分享一个自己写的httpWatch自动化测试工具
- 分享一个自己写的字符串工具:字符串格式化拼接
- 分享一个我自己写的JS目录树
- 分享一个自己写的俄罗斯方块。。。QT C++
- 分享一个自己写的wordpress广告位管理插件
- selector中的state误区
- 异步机制
- queue队列
- getpid
- 3.3 GreenDAO 使用心得
- 分享自己写的一个简化版LOG输出宏
- 【UVa】536 – Tree Recovery
- 二叉树三种遍历算法递归和非递归实现
- VAST Challenge 2015 Mini-Challenge 2
- 【UVa】10763 – Foreign Exchange
- C++11以前的序列点
- Java数据结构----树--红黑树
- oracle 11g归档日志研究_1
- java web文件上传功能实现