如何在程序中写log日志(定义log级别:error,warn, info, debug; 宏定义打印不同级别的日志; 程序中引用宏定义即可)
2015-06-01 10:51
716 查看
#include <stdio.h> #include <stdlib.h> #define global_debug 2 #define global_progname "MYLOG" enum { ERROR, WARN, INFO, DEBUG, }; #define debug(OUT, STR, ARGS...) \ if (global_debug >= DEBUG) \ fprintf(stdout, "%s - DEBUG: [%lli] ", global_progname, (long long)getpid()),\ fprintf(OUT, STR, ##ARGS), fflush(OUT) #define info(OUT, STR, ARGS...) \ if (global_debug >= INFO) \ fprintf(stdout, "%s - INFO: [%lli] ", global_progname, (long long)getpid()),\ fprintf(OUT, STR, ##ARGS), fflush(OUT) #define warn(OUT, STR, ARGS...) \ if (global_debug >= WARN) \ fprintf(stdout, "%s - WARN: [%lli] (line: %d) ", global_progname, (long long)getpid(),__LINE__ ),\ fprintf(OUT, STR, ##ARGS), fflush(OUT) #define error(OUT, STR, ARGS...) \ if (global_debug >= ERROR) \ fprintf(stdout, "%s - ERROR: [%lli](line: %d) ", global_progname, (long long)getpid(), __LINE__),\ fprintf(OUT, STR, ##ARGS), fflush(OUT) int main() { char *buff; buff = (char*)malloc(sizeof(char) * 1024); if (buff == NULL) { error(stdout, "buff address = %p\n", buff); } else { info(stdout, "malloc buff addres = %p\n\n", buff); } return 0; }
相关文章推荐
- CSS阴影效果(Box-shadow)用法趣味讲解
- Spring3 MVC 注解
- 函数指针、函数对象、仿函数比较与入门
- 初识热仿真的一些记录001
- maven安装及maven项目导入流程
- 使用 Git Hooks 实现自动项目部署
- PHP中使用cURL实现Get和Post请求的方法
- LeetCode 203:Remove Linked List Elements
- Linux下搭建Cortex-M嵌入式开发环境
- LINUX常用查看信息集
- minicom安装与使用
- Android Studio 插件
- MyEclipse2014安装jadeclipse插件
- Android的Socket通信编程实例
- eclipse有时候导入了包,但是还是有红线,找不到
- "晴天"天气app的开源库逐步学习(三)
- Linux下Android ADB驱动安装详解
- 《Unix内核源码剖析》读书笔记01-用户模式与内核模式
- 源码阅读 2 ErrorView
- opencv从内存读取图片