diff options
author | Yohann Ferreira <bertram@cegetel.net> | 2005-12-20 21:08:00 +0000 |
---|---|---|
committer | Yohann Ferreira <bertram@cegetel.net> | 2005-12-20 21:08:00 +0000 |
commit | c390ec7befcfeeda8504bdd74eb823b7ab721bf3 (patch) | |
tree | ad1c0164748a96ea5cb0a9b546585b7dd1c371f2 /src/utils/logger.cpp | |
parent | 609d235de3435fdc768207e59a2ee85172f291ba (diff) | |
download | manaserv-c390ec7befcfeeda8504bdd74eb823b7ab721bf3.tar.gz manaserv-c390ec7befcfeeda8504bdd74eb823b7ab721bf3.tar.bz2 manaserv-c390ec7befcfeeda8504bdd74eb823b7ab721bf3.tar.xz manaserv-c390ec7befcfeeda8504bdd74eb823b7ab721bf3.zip |
Adding command line argument parsing and log verbosity level handling.
Diffstat (limited to 'src/utils/logger.cpp')
-rw-r--r-- | src/utils/logger.cpp | 111 |
1 files changed, 63 insertions, 48 deletions
diff --git a/src/utils/logger.cpp b/src/utils/logger.cpp index 3f32ddb8..048fd5b1 100644 --- a/src/utils/logger.cpp +++ b/src/utils/logger.cpp @@ -44,7 +44,8 @@ namespace utils Logger::Logger(void) throw() : mHasTimestamp(true), - mTeeMode(false) + mTeeMode(false), + mVerbosity(0) { // NOOP } @@ -116,17 +117,20 @@ Logger::setTeeMode(bool flag) * Log a generic message. */ void -Logger::log(const std::string& msg) +Logger::log(const std::string& msg, unsigned short atVerbosity) { - if (mTeeMode) { - log(std::cout, msg); - - if (mLogFile.is_open()) { - log(mLogFile, msg); + if ( mVerbosity >= atVerbosity ) + { + if (mTeeMode) { + log(std::cout, msg); + + if (mLogFile.is_open()) { + log(mLogFile, msg); + } + } + else { + log((mLogFile.is_open() ? mLogFile : std::cout), msg); } - } - else { - log((mLogFile.is_open() ? mLogFile : std::cout), msg); } } @@ -135,17 +139,20 @@ Logger::log(const std::string& msg) * Log a debug message. */ void -Logger::debug(const std::string& msg) +Logger::debug(const std::string& msg, unsigned short atVerbosity) { - if (mTeeMode) { - log(std::cout, msg, "[DBG]"); - - if (mLogFile.is_open()) { - log(mLogFile, msg, "[DBG]"); + if ( mVerbosity >= atVerbosity ) + { + if (mTeeMode) { + log(std::cout, msg, "[DBG]"); + + if (mLogFile.is_open()) { + log(mLogFile, msg, "[DBG]"); + } + } + else { + log((mLogFile.is_open() ? mLogFile : std::cout), msg, "[DBG]"); } - } - else { - log((mLogFile.is_open() ? mLogFile : std::cout), msg, "[DBG]"); } } @@ -154,17 +161,20 @@ Logger::debug(const std::string& msg) * Log an info message. */ void -Logger::info(const std::string& msg) +Logger::info(const std::string& msg, unsigned short atVerbosity) { - if (mTeeMode) { - log(std::cout, msg, "[INF]"); - - if (mLogFile.is_open()) { - log(mLogFile, msg, "[INF]"); + if ( mVerbosity >= atVerbosity ) + { + if (mTeeMode) { + log(std::cout, msg, "[INF]"); + + if (mLogFile.is_open()) { + log(mLogFile, msg, "[INF]"); + } + } + else { + log((mLogFile.is_open() ? mLogFile : std::cout), msg, "[INF]"); } - } - else { - log((mLogFile.is_open() ? mLogFile : std::cout), msg, "[INF]"); } } @@ -173,17 +183,20 @@ Logger::info(const std::string& msg) * Log a warn message. */ void -Logger::warn(const std::string& msg) +Logger::warn(const std::string& msg, unsigned short atVerbosity) { - if (mTeeMode) { - log(std::cerr, msg, "[WRN]"); - - if (mLogFile.is_open()) { - log(mLogFile, msg, "[WRN]"); + if ( mVerbosity >= atVerbosity ) + { + if (mTeeMode) { + log(std::cerr, msg, "[WRN]"); + + if (mLogFile.is_open()) { + log(mLogFile, msg, "[WRN]"); + } + } + else { + log((mLogFile.is_open() ? mLogFile : std::cerr), msg, "[WRN]"); } - } - else { - log((mLogFile.is_open() ? mLogFile : std::cerr), msg, "[WRN]"); } } @@ -192,17 +205,20 @@ Logger::warn(const std::string& msg) * Log an error message. */ void -Logger::error(const std::string& msg) +Logger::error(const std::string& msg, unsigned short atVerbosity) { - if (mTeeMode) { - log(std::cerr, msg, "[ERR]"); - - if (mLogFile.is_open()) { - log(mLogFile, msg, "[ERR]"); + if ( mVerbosity >= atVerbosity ) + { + if (mTeeMode) { + log(std::cerr, msg, "[ERR]"); + + if (mLogFile.is_open()) { + log(mLogFile, msg, "[ERR]"); + } + } + else { + log((mLogFile.is_open() ? mLogFile : std::cerr), msg, "[ERR]"); } - } - else { - log((mLogFile.is_open() ? mLogFile : std::cerr), msg, "[ERR]"); } } @@ -211,7 +227,7 @@ Logger::error(const std::string& msg) * Log a fatal error message. */ void -Logger::fatal(const std::string& msg) +Logger::fatal(const std::string& msg, unsigned short atVerbosity) { if (mTeeMode) { log(std::cerr, msg, "[FTL]"); @@ -223,7 +239,6 @@ Logger::fatal(const std::string& msg) else { log((mLogFile.is_open() ? mLogFile : std::cerr), msg, "[FTL]"); } - #ifdef WIN32 MessageBox(NULL, msg.c_str(), "Fatal error", MB_ICONERROR | MB_OK); #endif |