Chinaunix首页 | 论坛 | 博客
  • 博客访问: 95779
  • 博文数量: 9
  • 博客积分: 330
  • 博客等级: 一等列兵
  • 技术积分: 117
  • 用 户 组: 普通用户
  • 注册时间: 2010-08-05 18:36
文章分类

全部博文(9)

文章存档

2012年(4)

2011年(1)

2010年(4)

分类: C/C++

2010-08-05 19:00:50

让运行日志记录的更详细, 希望能给您带来些帮助.
 
 

#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <stdarg.h>

/*
  在打印输出运行日志的同时,打印出该条运行日志所在源代码中的文件名,行号,和函数名.
  在调试,维护程序时, 能帮你更快地判断错误出现的位置.
*/


void log(const char *format, ...);
#define runlog(format,args...) log("%s:%d:%s() "format, __FILE__, __LINE__, __func__, ##args)

/*
这个宏的好处: 节省你写__FILE__, __LINE__, __func__,的时间,同时使代码看起来更简练
runlog() 如同printf()函数一样使用.
*/


void test()
{
        int val=200;
        runlog("here, val=%d\n", val);
}
int main(void)
{
        int val=100;
        runlog("here, val=%d\n", val);
        test();
        
        return 0;
}

void log(const char *format, ...)
{
        char logbuf[4096];
        va_list ap;
        if ((NULL==format) || (0==strlen(format))) {
                return;
        }
        memset(logbuf, 0, sizeof(logbuf));
        va_start(ap,format);
        vsnprintf(logbuf,sizeof(logbuf)-1, format,ap);
        va_end(ap);
        printf("%s", logbuf);
}



------------- end -------------
From: GS
-------------------------------
阅读(1008) | 评论(0) | 转发(0) |
0

上一篇:没有了

下一篇:crontab中使用环境变量的方法

给主人留下些什么吧!~~