代码拉取完成,页面将自动刷新
#pragma once
#include <iostream>
#include <cstdio>
#include <cstdarg>
#include <ctime>
#include <string>
using std::cout;
using std::endl;
using std::string;
// 日志是有日志级别的
#define DEBUG 0 // 调试
#define NORMAL 1 // 正常
#define WARNING 2 // 警告
#define ERROR 3 // 错误
#define FATAL 4 // 致命错误
#define LOGFILE "./calculato.log"
static const size_t BUFFER_NUM = 1024;
const char *gLevelMap[] = {
"DEBUG",
"NORMAL",
"WARNING",
"ERROR",
"FATAL"};
// 完整的日志功能,至少: 日志等级 时间 支持用户自定义(日志内容, 文件行,文件名)
void LogMessage(int level, const char *format, ...)
{
char stdBuffer[BUFFER_NUM]; // 标准部分
const time_t timestamp = time(nullptr);
struct tm *L_Time = localtime(×tamp);
string time;
time += "日期-时间:" + std::to_string(L_Time->tm_year+1900) + "/" + std::to_string(L_Time->tm_mon+1) + "/" + std::to_string(L_Time->tm_mday) + "-" + std::to_string(L_Time->tm_hour) + ":" + std::to_string(L_Time->tm_min) + ":" + std::to_string(L_Time->tm_sec);
std::to_string(L_Time->tm_sec);
snprintf(stdBuffer, sizeof stdBuffer, "[%s][%s]",
gLevelMap[level], time.c_str());
char logBuffer[BUFFER_NUM]; // 自定义部分
va_list args;
va_start(args, format);
vsnprintf(logBuffer, sizeof logBuffer, format, args);
va_end(args);
//FILE *fp = fopen(LOGFILE, "a");
printf("%s%s\n", stdBuffer, logBuffer);
//fprintf(fp, "%s%s\n", stdBuffer, logBuffer);
//fclose(fp);
}
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。