C语言简单的日志宏打印

原本这个会很多,结果在网上一搜却没有,就赶紧把过老师讲的记下来,以备后用。

#define LOG(s) do{													\
    time_t t;														\
    struct tm* ti;													\
    time(&t);														\
    ti = localtime(&t);												\
    printf("%s[%s: %d]  %s\n", asctime(ti), __FILE__, __LINE__, s); \
}while(0)


完整使用例子:

#include <stdio.h>
#include <time.h>

#define LOG(s) do{													\
    time_t t;														\
    struct tm* ti;													\
    time(&t);														\
    ti = localtime(&t);												\
    printf("%s[%s: %d]  %s\n", asctime(ti), __FILE__, __LINE__, s); \
}while(0)

void f()
{
    LOG("Enter f() ...");
    LOG("Exit f()...");
}
int main()
{
    LOG("Enter main() ... ");

    f();

    LOG("Exit main() ... ");


    return 0;
}
# ./a.out 
Mon Dec 31 16:43:50 2012
[hello.c: 19]  Enter main() ... 
Mon Dec 31 16:43:50 2012
[hello.c: 14]  Enter f() ...
Mon Dec 31 16:43:50 2012
[hello.c: 15]  Exit f()...
Mon Dec 31 16:43:50 2012
[hello.c: 23]  Exit main() ... 

以上的基于系统的很好用,如果在u-boot中或者在裸机程序中就不那么好用了,可以简单的使用这个:

#ifdef	DEBUG
#define debug(fmt,args...)	printf (fmt ,##args)
#define debugX(level,fmt,args...) if (DEBUG>=level) printf(fmt,##args);
#else
#define debug(fmt,args...)
#define debugX(level,fmt,args...)
#endif	/* DEBUG */



  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

袁保康

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值