Completed logging class to rudementary level. Extra operator overloadings still needed

This commit is contained in:
Suraxius committed 2021-01-08 13:06:21 +01:00
1 parent 7fa4d1fc58
commit 0dfda6f481
6 files changed
+87 -60

No files matched your search

+22 -27
View File
@@ -13,8 +13,13 @@ using std::endl;
Logger::Logger(enum Level logLevel, EventBus& eventBus) :
logLevel(logLevel),
eventBus(eventBus)
eventBus(eventBus),
debug(DEBUG, *this),
info(INFO, *this),
warn(WARN, *this),
fatal(FATAL, *this)
{
//info(this);
logFile = ofstream("plains.log");
if (!logFile) {
@@ -39,43 +44,33 @@ void Logger::log(Level lvl, const string& msg) { log ( lvl, msg.c_str() ); }
void Logger::log(Level lvl, const char* msg) {
switch ( lvl ) {
case DEBUG: debug (msg); break;
case INFO: info (msg); break;
case WARN: warn (msg); break;
case FATAL: fatal (msg); break;
case DEBUG: debug.ln (msg); break;
case INFO: info.ln (msg); break;
case WARN: warn.ln (msg); break;
case FATAL: fatal.ln (msg); break;
}
}
void Logger::debug ( const string& msg ) {
logFile << "DATESTAMP [DEBUG] " << msg << endl;
Logger::Sink::Sink (const Level level, Logger& parent) : level(level), parent(parent) {}
void Logger::Sink::ln ( const string& msg ) {
if ( level >= parent.logLevel ) parent.logFile << "DATESTAMP [" << level << "] " << msg << endl;
}
void Logger::debug ( const char* msg ) {
logFile << "DATESTAMP [DEBUG] " << msg << endl;
void Logger::Sink::ln ( const char* msg ) {
if ( level >= parent.logLevel ) parent.logFile << "DATESTAMP [" << level << "] " << msg << endl;
}
void Logger::info ( const string& msg ) {
if ( logLevel >= INFO ) logFile << "DATESTAMP [INFO] " << msg << endl;
Logger::Sink& Logger::Sink::operator<<(const string& msg) {
if ( level >= parent.logLevel ) parent.logFile << "DATESTAMP [" << level << "] " << msg;
return *this;
}
void Logger::info ( const char* msg ) {
if ( logLevel >= INFO ) logFile << "DATESTAMP [INFO] " << msg << endl;
Logger::Sink& Logger::Sink::operator<<(const char* msg) {
if ( level >= parent.logLevel ) parent.logFile << "DATESTAMP [" << level << "] " << msg;
return *this;
}
void Logger::warn ( const string& msg ) {
if ( logLevel >= WARN ) logFile << "DATESTAMP [WARN] " << msg << endl;
}
void Logger::warn ( const char* msg ) {
if ( logLevel >= WARN ) logFile << "DATESTAMP [WARN] " << msg << endl;
}
void Logger::fatal ( const string& msg ) {
if ( logLevel == FATAL ) logFile << "DATESTAMP [FATAL] " << msg << endl;
}
void Logger::fatal ( const char* msg ) {
if ( logLevel == FATAL ) logFile << "DATESTAMP [FATAL] " << msg << endl;
}
}}