Browse Source

different log levels

pull/106/head
orignal 10 years ago
parent
commit
11a0bbc368
  1. 11
      Log.cpp
  2. 23
      Log.h

11
Log.cpp

@ -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

@ -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)
@ -86,4 +97,10 @@ void LogPrint (TArgs... args)
} }
} }
template<typename... TArgs>
void LogPrint (TArgs... args)
{
LogPrint (eLogInfo, args...);
}
#endif #endif

Loading…
Cancel
Save