代码拉取完成,页面将自动刷新
#include <stdio.h>
#include <unistd.h>
#include <string.h>
#include <stdarg.h>
#include <time.h>
#include <sys/time.h>
#include "logger.h"
unsigned int g_defaultLogLevel = LOG_LEVEL_INFO;
void GetTime(char *pszTimeStr)
{
struct tm tSysTime = {0};
struct timeval tTimeVal = {0};
time_t tCurrentTime = {0};
char szUsec[20] = {0}; // 微秒
char szMsec[20] = {0}; // 毫秒
if (pszTimeStr == NULL)
{
return;
}
tCurrentTime = time(NULL);
localtime_r(&tCurrentTime, &tSysTime); // localtime_r是线程安全的
gettimeofday(&tTimeVal, NULL);
sprintf(szUsec, "%06ld", tTimeVal.tv_usec); // 获取微秒
strncpy(szMsec, szUsec, 3); // 微秒的前3位为毫秒(1毫秒=1000微秒)
sprintf(pszTimeStr, "%04d.%02d.%02d %02d:%02d:%02d.%3.3s",
tSysTime.tm_year+1900, tSysTime.tm_mon+1, tSysTime.tm_mday,
tSysTime.tm_hour, tSysTime.tm_min, tSysTime.tm_sec, szMsec);
}
void writeLog(unsigned int logLevel, char * fmt, ...)
{
int iRet = -1;
// int i = 0;
va_list args;
if (logLevel > g_defaultLogLevel)
{
return;
}
va_start(args,fmt);
char buf[strlen(fmt) + 10];
// memset(strlen(fmt) + 10);
bzero(buf, strlen(fmt) + 10);
// if (fmt[strlen(fmt) - 1] == '\n')
// {
// memcpy(buf, fmt, strlen(fmt) - 1);
// }
// else
// {
memcpy(buf, fmt, strlen(fmt));
// }
strcat(buf, "\"");
iRet = vfprintf(stdout,buf,args);
iRet = iRet;
va_end(args);
fflush(stdout);
}
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。