82 lines
1.7 KiB
C++
82 lines
1.7 KiB
C++
#include "ConsoleSession.h"
|
|
#include "Log.h"
|
|
#include "LogListener.h"
|
|
#include "ConsoleServer.h"
|
|
|
|
namespace coreutils {
|
|
|
|
LogListener *Log::logListener = NULL;
|
|
File *Log::logFile = NULL;
|
|
int Log::seq = 0;
|
|
|
|
Log::Log(LogListener *logListener) {
|
|
this->logListener = logListener;
|
|
}
|
|
|
|
Log::Log(File *logFile) {
|
|
this->logFile = logFile;
|
|
}
|
|
|
|
Log::Log(int level) {
|
|
|
|
output = true;
|
|
|
|
auto clock = std::chrono::system_clock::now();
|
|
time_t theTime = std::chrono::system_clock::to_time_t(clock);
|
|
std::string timeOut = std::string(ctime(&theTime));
|
|
timeOut = timeOut.substr(0, timeOut.length() - 1);
|
|
|
|
*this << timeOut;
|
|
*this << " ";
|
|
|
|
switch(level) {
|
|
case LOG_NONE:
|
|
*this << "[NONE] :";
|
|
break;
|
|
case LOG_INFO:
|
|
*this << "[INFO] :";
|
|
break;
|
|
case LOG_WARN:
|
|
*this << "[WARN] :";
|
|
break;
|
|
case LOG_EXCEPT:
|
|
*this << "[EXCEPT]: ";
|
|
break;
|
|
case LOG_DEBUG_1:
|
|
*this << "[DEBUG1]: ";
|
|
break;
|
|
case LOG_DEBUG_2:
|
|
*this << "[DEBUG2]: ";
|
|
break;
|
|
case LOG_DEBUG_3:
|
|
*this << "[DEBUG3]: ";
|
|
break;
|
|
case LOG_DEBUG_4:
|
|
*this << "[DEBUG4]: ";
|
|
break;
|
|
default:
|
|
*this << "[?] ?";
|
|
break;
|
|
};
|
|
}
|
|
|
|
Log::~Log() {
|
|
|
|
if(output) {
|
|
|
|
std::stringstream out;
|
|
out << seq << "." << this->str() << std::endl;;
|
|
|
|
if(logListener)
|
|
logListener->logSend(out.str());
|
|
|
|
if(logFile)
|
|
logFile->write(out.str());
|
|
|
|
std::cout << out.str();
|
|
++seq;
|
|
}
|
|
}
|
|
|
|
}
|