howto print time log for application

#include <sys/time.h>
#include <sys/types.h>

static FILE *log;
static int first_time = 1;

struct timeval start;

void open_log(const char *logfile)
{
  log = fopen(logfile, "w");
}
void lprintf(const char* fmt, ...)
{
        va_list args;
        struct timeval current;
        uint64_t secs, usecs;
        char string[8192];
        char msg[8192];

        if (first_time) {
                first_time = 0;
                gettimeofday(&start, NULL);
        }

        gettimeofday(&current, NULL);

        secs = current.tv_sec - start.tv_sec;

        while (current.tv_usec < start.tv_usec) {
                secs --;
                current.tv_usec += 1000000;
        }
        usecs = current.tv_usec - start.tv_usec;

        va_start(args, fmt);
        vsnprintf(msg, 8192, fmt, args);
        va_end(args);
        if (msg[strlen(msg) - 1] == '\n')
                msg[strlen(msg) - 1] = '\0';

        snprintf(string, 8192, "[%02llu.%06llu] %s\n", secs, usecs, msg);

        if (log) {
                fputs(string, log);
                fflush(log);
        } else {
                lprintf("unable to write logfile, file logging disabled");
        }
}
 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值