2016-08-04 17:39:48 +01:00
|
|
|
#include "Logger.hpp"
|
|
|
|
|
|
|
|
#include <iostream>
|
|
|
|
#include <ctime>
|
|
|
|
|
|
|
|
namespace Logger {
|
|
|
|
std::ostream &operator<<(std::ostream &out, const LogLevel log_level) {
|
|
|
|
switch (log_level) {
|
|
|
|
case LogLevel::Debug:
|
|
|
|
return out << "debug";
|
|
|
|
case LogLevel::Info:
|
|
|
|
return out << "info";
|
|
|
|
case LogLevel::Warning:
|
|
|
|
return out << "warning";
|
|
|
|
case LogLevel::Severe:
|
|
|
|
return out << "severe";
|
|
|
|
}
|
|
|
|
return out << "";
|
|
|
|
}
|
|
|
|
|
|
|
|
std::ostream &get_ostream(LogLevel log_level) {
|
|
|
|
switch (log_level) {
|
|
|
|
case LogLevel::Debug:
|
|
|
|
case LogLevel::Info:
|
|
|
|
return std::clog;
|
|
|
|
case LogLevel::Severe:
|
|
|
|
case LogLevel::Warning:
|
|
|
|
return std::cerr;
|
|
|
|
}
|
2016-08-11 20:21:46 +01:00
|
|
|
|
|
|
|
return std::cerr;
|
2016-08-04 17:39:48 +01:00
|
|
|
}
|
|
|
|
|
|
|
|
void write(std::string text, LogLevel log_level) {
|
2016-08-12 15:30:47 +01:00
|
|
|
time_t rawtime;
|
|
|
|
struct tm *timeinfo;
|
|
|
|
char buffer[80];
|
2016-08-04 17:39:48 +01:00
|
|
|
|
2016-08-12 15:30:47 +01:00
|
|
|
time(&rawtime);
|
|
|
|
timeinfo = localtime(&rawtime);
|
|
|
|
|
|
|
|
strftime(buffer, 80, "%Y-%m-%d %H:%M:%S", timeinfo);
|
|
|
|
std::string time_str(buffer);
|
|
|
|
|
|
|
|
get_ostream(log_level) << "[" << time_str << "] [" << log_level << "] " << text << std::endl;
|
2016-08-04 17:39:48 +01:00
|
|
|
}
|
2016-08-12 15:30:47 +01:00
|
|
|
}
|