!refactor(Log:Level): as enum class and renamed members to lowercase
matching modern conventions and fixing Windows compat issue (wingdi.h)
This commit is contained in:
parent
d403a32766
commit
6ecbc406d7
30
Log.cpp
30
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<int>(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<int>(lvl)];
|
||||
}
|
||||
|
||||
void init() {
|
||||
|
|
2
Log.h
2
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();
|
||||
|
|
86
test.cpp
86
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();
|
||||
|
||||
|
|
Loading…
Reference in New Issue