diff --git a/Log.cpp b/Log.cpp index 3328e4e..0e5f14a 100644 --- a/Log.cpp +++ b/Log.cpp @@ -39,7 +39,7 @@ public: virtual void setLogLevel(Level lvl) { lvl_max = lvl; } protected: - Level lvl_max = INFO; + Level lvl_max = Level::info; // returns the correct ostream for the given log-level // or returns nullptr if no ostream is set/enabled for this level virtual std::ostream* getOs(Level lvl) = 0; // abstract @@ -66,7 +66,7 @@ private: bool coloredOutput; virtual void log(Level lvl, std::stringbuf* sbuf) { - // OFF FATAL ERROR WARN NOTE INFO DEBUG TRACE + // off fatal error warn note info debug trace static const char* color_codes[] = {"", "1;31;40m", "31m", "33m", "96m", "32m", "0m", "0m"}; //aquire lock @@ -79,7 +79,7 @@ private: if (os) { // print colors if enabled if (coloredOutput) - *os << "\x1B[" << color_codes[lvl] << sbuf << "\x1B[0m"; + *os << "\x1B[" << color_codes[static_cast(lvl)] << sbuf << "\x1B[0m"; else *os << sbuf; @@ -89,11 +89,11 @@ private: virtual std::ostream* getOs(Level lvl) { // out of scope? - if (!lvl || lvl > lvl_max) + if (lvl == Level::off || lvl > lvl_max) return nullptr; - // stderr for FATAL, ERROR, WARN - if (lvl <= Level::WARN) + // stderr for fatal, error, warn + if (lvl <= Level::warn) return osErr; else return osStd; @@ -114,7 +114,7 @@ public: private: std::string filename; std::ofstream ofs; - Level lvl_min = FATAL; + Level lvl_min = Level::fatal; #if LOG_USEMUTEX == 1 std::mutex ostreamLock; //used for both streams @@ -137,13 +137,13 @@ void log(Level lvl, std::stringbuf* strb) { } } -LeveledSink fatal(Level::FATAL); -LeveledSink error(Level::ERROR); -LeveledSink warn(Level::WARN); -LeveledSink note(Level::NOTE); -LeveledSink info(Level::INFO); -LeveledSink debug(Level::DEBUG); -LeveledSink trace(Level::TRACE); +LeveledSink fatal(Level::fatal); +LeveledSink error(Level::error); +LeveledSink warn(Level::warn); +LeveledSink note(Level::note); +LeveledSink info(Level::info); +LeveledSink debug(Level::debug); +LeveledSink trace(Level::trace); /* * class Entry @@ -172,7 +172,7 @@ void Entry::addMetadataHeader() { ss << "[" << std::put_time(&tm, "%Y-%m-%d %H:%M:%S") << "]"; // log level - ss << LevelTag[lvl]; + ss << LevelTag[static_cast(lvl)]; } void init() { diff --git a/Log.h b/Log.h index ea7b06d..c94b6fe 100644 --- a/Log.h +++ b/Log.h @@ -8,7 +8,7 @@ #endif namespace Log { -enum Level { OFF = 0, FATAL, ERROR, WARN, NOTE, INFO, DEBUG, TRACE }; +enum class Level { off = 0, fatal, error, warn, note, info, debug, trace }; // set up the logger with a ConsoleOutput void init(); diff --git a/test.cpp b/test.cpp index 9ffe64f..57804c6 100644 --- a/test.cpp +++ b/test.cpp @@ -6,23 +6,23 @@ int main() { Log::init(); Log::info << "Hello World!"; - Log::addLogfile("test.warn.log", Log::Level::WARN); - Log::addLogfile("test.info.log", Log::Level::INFO, Log::Level::INFO); - Log::addLogfile("test.trace.log", Log::Level::DEBUG, Log::Level::TRACE); + Log::addLogfile("test.warn.log", Log::Level::warn); + Log::addLogfile("test.info.log", Log::Level::info, Log::Level::info); + Log::addLogfile("test.trace.log", Log::Level::debug, Log::Level::trace); // log single values only - std::cout << "=== Log level TRACE ===" << std::endl; - Log::setConsoleLogLevel(Log::Level::TRACE); - Log::trace << "trace msg @Lvl TRACE"; - Log::debug << "dbg msg @Lvl TRACE"; - Log::info << "info msg @Lvl TRACE"; - Log::note << "note msg @Lvl TRACE"; - Log::warn << "warn msg @Lvl TRACE"; - Log::error << "error msg @Lvl TRACE"; - Log::fatal << "fatal msg @Lvl TRACE"; + std::cout << "=== Log level trace ===" << std::endl; + Log::setConsoleLogLevel(Log::Level::trace); + Log::trace << "trace msg @Lvl trace"; + Log::debug << "dbg msg @Lvl trace"; + Log::info << "info msg @Lvl trace"; + Log::note << "note msg @Lvl trace"; + Log::warn << "warn msg @Lvl trace"; + Log::error << "error msg @Lvl trace"; + Log::fatal << "fatal msg @Lvl trace"; - std::cout << "=== Log level WARN ===" << std::endl; - Log::setConsoleLogLevel(Log::Level::WARN); + std::cout << "=== Log level warn ===" << std::endl; + Log::setConsoleLogLevel(Log::Level::warn); Log::trace << 42; Log::debug << 42; Log::info << 42; @@ -31,8 +31,8 @@ int main() { Log::error << 42; Log::fatal << 42; - std::cout << "=== Log level FATAL ===" << std::endl; - Log::setConsoleLogLevel(Log::Level::FATAL); + std::cout << "=== Log level fatal ===" << std::endl; + Log::setConsoleLogLevel(Log::Level::fatal); Log::trace << 3.14159; Log::debug << 3.14159; Log::info << 3.14159; @@ -43,35 +43,35 @@ int main() { // log streams + colors Log::setColoredOutput(true); - Log::setConsoleLogLevel(Log::Level::TRACE); - std::cout << "=== Log level DEBUG ===" << std::endl; - Log::trace << "trace msg @Lvl TRACE; " << 42 << "; " << 3.14159; - Log::debug << "dbg msg @Lvl TRACE; " << 42 << "; " << 3.14159; - Log::info << "info msg @Lvl TRACE; " << 42 << "; " << 3.14159; - Log::note << "note msg @Lvl TRACE; " << 42 << "; " << 3.14159; - Log::warn << "warn msg @Lvl TRACE; " << 42 << "; " << 3.14159; - Log::error << "error msg @Lvl TRACE; " << 42 << "; " << 3.14159; - Log::fatal << "fatal msg @Lvl TRACE; " << 42 << "; " << 3.14159; + Log::setConsoleLogLevel(Log::Level::trace); + std::cout << "=== Log level debug ===" << std::endl; + Log::trace << "trace msg @Lvl trace; " << 42 << "; " << 3.14159; + Log::debug << "dbg msg @Lvl trace; " << 42 << "; " << 3.14159; + Log::info << "info msg @Lvl trace; " << 42 << "; " << 3.14159; + Log::note << "note msg @Lvl trace; " << 42 << "; " << 3.14159; + Log::warn << "warn msg @Lvl trace; " << 42 << "; " << 3.14159; + Log::error << "error msg @Lvl trace; " << 42 << "; " << 3.14159; + Log::fatal << "fatal msg @Lvl trace; " << 42 << "; " << 3.14159; - std::cout << "=== Log level WARN ===" << std::endl; - Log::setConsoleLogLevel(Log::Level::WARN); - Log::trace << "trace msg @Lvl WARN; " << 42 << "; " << 3.14159; - Log::debug << "dbg msg @Lvl WARN; " << 42 << "; " << 3.14159; - Log::info << "info msg @Lvl WARN; " << 42 << "; " << 3.14159; - Log::note << "note msg @Lvl WARN; " << 42 << "; " << 3.14159; - Log::warn << "warn msg @Lvl WARN; " << 42 << "; " << 3.14159; - Log::error << "error msg @Lvl WARN; " << 42 << "; " << 3.14159; - Log::fatal << "fatal msg @Lvl WARN; " << 42 << "; " << 3.14159; + std::cout << "=== Log level warn ===" << std::endl; + Log::setConsoleLogLevel(Log::Level::warn); + Log::trace << "trace msg @Lvl warn; " << 42 << "; " << 3.14159; + Log::debug << "dbg msg @Lvl warn; " << 42 << "; " << 3.14159; + Log::info << "info msg @Lvl warn; " << 42 << "; " << 3.14159; + Log::note << "note msg @Lvl warn; " << 42 << "; " << 3.14159; + Log::warn << "warn msg @Lvl warn; " << 42 << "; " << 3.14159; + Log::error << "error msg @Lvl warn; " << 42 << "; " << 3.14159; + Log::fatal << "fatal msg @Lvl warn; " << 42 << "; " << 3.14159; - std::cout << "=== Log level FATAL ===" << std::endl; - Log::setConsoleLogLevel(Log::Level::FATAL); - Log::trace << "trace msg @Lvl FATAL; " << 42 << "; " << 3.14159; - Log::debug << "dbg msg @Lvl FATAL; " << 42 << "; " << 3.14159; - Log::info << "info msg @Lvl FATAL; " << 42 << "; " << 3.14159; - Log::note << "note msg @Lvl FATAL; " << 42 << "; " << 3.14159; - Log::warn << "warn msg @Lvl FATAL; " << 42 << "; " << 3.14159; - Log::error << "error msg @Lvl FATAL; " << 42 << "; " << 3.14159; - Log::fatal << "fatal msg @Lvl FATAL; " << 42 << "; " << 3.14159; + std::cout << "=== Log level fatal ===" << std::endl; + Log::setConsoleLogLevel(Log::Level::fatal); + Log::trace << "trace msg @Lvl fatal; " << 42 << "; " << 3.14159; + Log::debug << "dbg msg @Lvl fatal; " << 42 << "; " << 3.14159; + Log::info << "info msg @Lvl fatal; " << 42 << "; " << 3.14159; + Log::note << "note msg @Lvl fatal; " << 42 << "; " << 3.14159; + Log::warn << "warn msg @Lvl fatal; " << 42 << "; " << 3.14159; + Log::error << "error msg @Lvl fatal; " << 42 << "; " << 3.14159; + Log::fatal << "fatal msg @Lvl fatal; " << 42 << "; " << 3.14159; Log::stop();