代码拉取完成,页面将自动刷新
#include<iostream>
#include<string>
#include<sys/types.h>
#include<unistd.h>
#include<stdio.h>
#include<cstdarg>
#include<time.h>
using namespace std;
// 日志系统是有等级的
enum
{
Debug=0,
Info,
Warning,
Error,
Fatal,
Uknown
};
static string toLevelString(int level)
{
switch (level)
{
case Debug:
return "Debug";
case Info:
return "Info";
case Warning:
return "Warning";
case Error:
return "Error";
case Fatal:
return "Fatal";
default:
return "Uknown";
}
}
string getTime()
{
time_t curr=time(nullptr);
struct tm*tmp=localtime(&curr);
char buffer[128];
snprintf(buffer,sizeof(buffer),"%d-%d-%d %d:%d:%d",tmp->tm_year+1900,tmp->tm_mon+1,tmp->tm_mday,
tmp->tm_hour,tmp->tm_min,tmp->tm_sec);
return buffer;
}
// 日志格式: 日志等级 时间 pid 消息体
// logLeft: 日志等级 时间 pid logRight: 消息体
// logMessage(Debug, "hello: %d, %s",12,s.c_str()) Debug, hello: 12, world
void logMessage(int level, const char*format,...)
{
char logLeft[1024];
string level_string=toLevelString(level);
string curr_time=getTime();
snprintf(logLeft,sizeof(logLeft),"[%s] [%s] [%d] ",level_string.c_str(),curr_time.c_str(),getpid());
char logRight[1024];
va_list p;
va_start(p,format);
vsnprintf(logRight,sizeof(logRight),format,p);
va_end(p);
printf("%s%s\n",logLeft,logRight);
}
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。