different log levels

This commit is contained in:
orignal 2014-10-28 16:36:17 -04:00
parent fe4de7c8ac
commit 11a0bbc368
2 changed files with 30 additions and 4 deletions

11
Log.cpp
View File

@ -3,9 +3,18 @@
Log * g_Log = nullptr; Log * g_Log = nullptr;
static const char * g_LogLevelStr[eNumLogLevels] =
{
"error", // eLogError
"warn", // eLogWarning
"info", // eLogInfo
"debug" // eLogDebug
};
void LogMsg::Process() void LogMsg::Process()
{ {
output << boost::posix_time::second_clock::local_time().time_of_day () << " - "; output << boost::posix_time::second_clock::local_time().time_of_day () <<
"/" << g_LogLevelStr[level] << " - ";
output << s.str(); output << s.str();
} }

23
Log.h
View File

@ -8,12 +8,22 @@
#include <functional> #include <functional>
#include "Queue.h" #include "Queue.h"
enum LogLevel
{
eLogError = 0,
eLogWarning,
eLogInfo,
eLogDebug,
eNumLogLevels
};
struct LogMsg struct LogMsg
{ {
std::stringstream s; std::stringstream s;
std::ostream& output; std::ostream& output;
LogLevel level;
LogMsg (std::ostream& o = std::cout): output (o) {}; LogMsg (std::ostream& o = std::cout, LogLevel l = eLogInfo): output (o), level (l) {};
void Process(); void Process();
}; };
@ -72,9 +82,10 @@ void LogPrint (std::stringstream& s, TValue arg, TArgs... args)
} }
template<typename... TArgs> template<typename... TArgs>
void LogPrint (TArgs... args) void LogPrint (LogLevel level, TArgs... args)
{ {
LogMsg * msg = (g_Log && g_Log->GetLogFile ()) ? new LogMsg (*g_Log->GetLogFile ()) : new LogMsg (); LogMsg * msg = (g_Log && g_Log->GetLogFile ()) ? new LogMsg (*g_Log->GetLogFile (), level) :
new LogMsg (std::cout, level);
LogPrint (msg->s, args...); LogPrint (msg->s, args...);
msg->s << std::endl; msg->s << std::endl;
if (g_Log) if (g_Log)
@ -84,6 +95,12 @@ void LogPrint (TArgs... args)
msg->Process (); msg->Process ();
delete msg; delete msg;
} }
}
template<typename... TArgs>
void LogPrint (TArgs... args)
{
LogPrint (eLogInfo, args...);
} }
#endif #endif