代码拉取完成,页面将自动刷新
#include <stdio.h>
#include <time.h>
#include "Logger.h"
#include "util.h"
bool LogLevel::isValid(int level)
{
switch(level) {
case Info:
case Error:
case Debug:
return true;
default:
return false;
}
}
std::string LogLevel::toString(int level)
{
switch(level) {
case Info:
return "Info";
case Error:
return "Error";
case Debug:
return "Debug";
case Warning:
return "Warning";
}
return "";
}
std::string Logger::getDateTimeString()
{
time_t now = time(0);
struct tm tstruct;
char buf[80];
tstruct = *localtime(&now);
strftime(buf, sizeof(buf), "%Y-%m-%d.%X", &tstruct);
return std::string(buf);
}
std::string Logger::formatLog(int logLevel, std::string msg)
{
std::string dateTime = getDateTimeString();
std::string prefix = "[" + dateTime + "] [" + LogLevel::toString(logLevel) + "] ";
size_t prefixLen = prefix.length();
std::string padding(prefixLen, ' ');
if(msg.find('\n', 0) != std::string::npos) {
size_t pos = 0;
size_t prev = 0;
while((pos = msg.find('\n', prev)) != std::string::npos) {
prefix += msg.substr(prev, pos - prev) + "\n" + padding;
prev = pos + 1;
}
prefix += msg.substr(prev);
} else {
prefix += msg;
}
return prefix;
}
void Logger::log(int logLevel, std::string msg)
{
std::string str = formatLog(logLevel, msg);
fprintf(stderr, "%s\n", str.c_str());
}
void Logger::setLogFile(std::string path)
{
}
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。