Delete 'src/my-online-judge-master/MYOJ/compile_server/comm/Log.hpp'

master
pk4wt2yal 2 months ago
parent 28ea1369b7
commit 46029a636f

@ -1,133 +0,0 @@
#pragma once
#include <string>
#include <stdio.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <unistd.h>
#include <stdarg.h>
enum PrintMethods
{
Screen = 1,
Onefile,
Classfile
};
enum LogLevel
{
Info = 0,
Debug,
Warning,
Error,
Fatal
};
std::string defaultPath = "./Log/";
class Log
{
public:
// 初始化日志默认向屏幕上输出输出文件路径默认设置为当前路径下Log.txt文件
Log(const int printMethod = Screen, const std::string &path = defaultPath)
: _path(path), _printMethod(printMethod)
{
}
// 改变日志的输出方式
void Enable(int newMethod)
{
_printMethod = newMethod;
}
std::string LevelToString(int level)
{
switch (level)
{
case Info:
return "Info";
break;
case Debug:
return "Debug";
break;
case Warning:
return "Warning";
break;
case Error:
return "Error";
break;
case Fatal:
return "Fatal";
break;
default:
return "None";
break;
}
}
void PrintLog(const std::string &LogMessage, int level)
{
switch (_printMethod)
{
case Screen:
printf("%s", LogMessage.c_str());
break;
case Onefile:
printOnefile("log.txt", LogMessage);
break;
case Classfile:
printClassFile(LogMessage, level);
break;
default:
break;
}
}
void printOnefile(const std::string &logName, const std::string &LogMessage)
{
std::string fileName = _path;
fileName += logName;
int fd = open(fileName.c_str(), O_APPEND | O_WRONLY | O_CREAT, 0666);
if (fd < 0)
{
perror("printOnefile open");
return;
}
write(fd, LogMessage.c_str(), LogMessage.size());
close(fd);
}
void printClassFile(const std::string &LogMessage, int level)
{
std::string fileName = "log.txt.";
fileName += LevelToString(level);
printOnefile(fileName, LogMessage);
}
void operator()(int level, const char *format, ...)
{
time_t t;
time(&t);
struct tm *p;
p = localtime(&t);
char leftBuffer[1024];
snprintf(leftBuffer, sizeof(leftBuffer) - 1, "[%s][%d-%d-%d %d:%d:%d]", LevelToString(level).c_str(),
p->tm_year + 1900, p->tm_mon + 1, p->tm_mday, p->tm_hour, p->tm_min, p->tm_sec);
char rightBuffer[1024];
va_list ap;
va_start(ap, format);
vsnprintf(rightBuffer, sizeof(rightBuffer) - 1, format, ap);
std::string LogMessage(leftBuffer);
LogMessage += " ";
LogMessage += rightBuffer;
PrintLog(LogMessage, level);
}
private:
std::string _path;
int _printMethod;
};
Log lg;
Loading…
Cancel
Save