加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
克隆/下载
logger.c 1.56 KB
一键复制 编辑 原始数据 按行查看 历史
wusong 提交于 2021-01-16 16:06 . single thread select
#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);
}
Loading...
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化