From eb58263d4d5418e1d3598e51e2d06700f7f6511c Mon Sep 17 00:00:00 2001 From: Alexey Rybalchenko Date: Fri, 10 Sep 2021 11:15:00 +0200 Subject: [PATCH] Add 'alarm' and 'important' severities --- README.md | 2 ++ logger/Logger.cxx | 82 +++++++++++++++++++++++++---------------------- logger/Logger.h | 13 +++++--- test/cycle.cxx | 4 +-- test/logger.cxx | 26 ++++++++------- test/nolog.cxx | 24 +++++++------- test/severity.cxx | 28 ++++++++-------- 7 files changed, 98 insertions(+), 81 deletions(-) diff --git a/README.md b/README.md index 66be00d..4cb2104 100644 --- a/README.md +++ b/README.md @@ -96,6 +96,8 @@ where severity level is one of the following: "info", "state", "warn", +"important", +"alarm", "error", "fatal", ``` diff --git a/logger/Logger.cxx b/logger/Logger.cxx index ae34a00..c3f4cfa 100644 --- a/logger/Logger.cxx +++ b/logger/Logger.cxx @@ -63,33 +63,35 @@ const unordered_map Logger::fVerbosityMap = const unordered_map Logger::fSeverityMap = { - { "nolog", Severity::nolog }, - { "NOLOG", Severity::nolog }, - { "error", Severity::error }, - { "ERROR", Severity::error }, - { "warn", Severity::warn }, - { "WARN", Severity::warn }, - { "warning", Severity::warn }, - { "WARNING", Severity::warn }, - { "state", Severity::state }, - { "STATE", Severity::state }, - { "info", Severity::info }, - { "INFO", Severity::info }, - { "debug", Severity::debug }, - { "DEBUG", Severity::debug }, - { "debug1", Severity::debug1 }, - { "DEBUG1", Severity::debug1 }, - { "debug2", Severity::debug2 }, - { "DEBUG2", Severity::debug2 }, - { "debug3", Severity::debug3 }, - { "DEBUG3", Severity::debug3 }, - { "debug4", Severity::debug4 }, - { "DEBUG4", Severity::debug4 }, - { "trace", Severity::trace }, - { "TRACE", Severity::trace } + { "nolog", Severity::nolog }, + { "NOLOG", Severity::nolog }, + { "error", Severity::error }, + { "ERROR", Severity::error }, + { "alarm", Severity::alarm }, + { "important", Severity::important }, + { "warn", Severity::warn }, + { "WARN", Severity::warn }, + { "warning", Severity::warn }, + { "WARNING", Severity::warn }, + { "state", Severity::state }, + { "STATE", Severity::state }, + { "info", Severity::info }, + { "INFO", Severity::info }, + { "debug", Severity::debug }, + { "DEBUG", Severity::debug }, + { "debug1", Severity::debug1 }, + { "DEBUG1", Severity::debug1 }, + { "debug2", Severity::debug2 }, + { "DEBUG2", Severity::debug2 }, + { "debug3", Severity::debug3 }, + { "DEBUG3", Severity::debug3 }, + { "debug4", Severity::debug4 }, + { "DEBUG4", Severity::debug4 }, + { "trace", Severity::trace }, + { "TRACE", Severity::trace } }; -const array Logger::fSeverityNames = +const array Logger::fSeverityNames = { { "NOLOG", @@ -102,6 +104,8 @@ const array Logger::fSeverityNames = "INFO", "STATE", "WARN", + "IMPORTANT", + "ALARM", "ERROR", "FATAL" } @@ -278,19 +282,21 @@ void Logger::LogEmptyLine() string Logger::GetColoredSeverityString(Severity severity) { switch (severity) { - case Severity::nolog: return "\033[01;39mNOLOG\033[0m"; break; - case Severity::fatal: return "\033[01;31mFATAL\033[0m"; break; - case Severity::error: return "\033[01;31mERROR\033[0m"; break; - case Severity::warn: return "\033[01;33mWARN\033[0m"; break; - case Severity::state: return "\033[01;35mSTATE\033[0m"; break; - case Severity::info: return "\033[01;32mINFO\033[0m"; break; - case Severity::debug: return "\033[01;34mDEBUG\033[0m"; break; - case Severity::debug1: return "\033[01;34mDEBUG1\033[0m"; break; - case Severity::debug2: return "\033[01;34mDEBUG2\033[0m"; break; - case Severity::debug3: return "\033[01;34mDEBUG3\033[0m"; break; - case Severity::debug4: return "\033[01;34mDEBUG4\033[0m"; break; - case Severity::trace: return "\033[01;36mTRACE\033[0m"; break; - default: return "UNKNOWN"; break; + case Severity::nolog: return "\033[01;39mNOLOG\033[0m"; break; + case Severity::fatal: return "\033[01;31mFATAL\033[0m"; break; + case Severity::error: return "\033[01;31mERROR\033[0m"; break; + case Severity::alarm: return "\033[01;33mALARM\033[0m"; break; + case Severity::important: return "\033[01;32mIMPORTANT\033[0m"; break; + case Severity::warn: return "\033[01;33mWARN\033[0m"; break; + case Severity::state: return "\033[01;35mSTATE\033[0m"; break; + case Severity::info: return "\033[01;32mINFO\033[0m"; break; + case Severity::debug: return "\033[01;34mDEBUG\033[0m"; break; + case Severity::debug1: return "\033[01;34mDEBUG1\033[0m"; break; + case Severity::debug2: return "\033[01;34mDEBUG2\033[0m"; break; + case Severity::debug3: return "\033[01;34mDEBUG3\033[0m"; break; + case Severity::debug4: return "\033[01;34mDEBUG4\033[0m"; break; + case Severity::trace: return "\033[01;36mTRACE\033[0m"; break; + default: return "UNKNOWN"; break; } } diff --git a/logger/Logger.h b/logger/Logger.h index d3140e2..eb9e3e0 100644 --- a/logger/Logger.h +++ b/logger/Logger.h @@ -61,9 +61,13 @@ enum class Severity : int info = 7, state = 8, warn = 9, - error = 10, - fatal = 11, - // backwards-compatibility: + important = 10, + alarm = 11, + error = 12, + fatal = 13, + // aliases + warning = warn, + // backwards-compatibility NOLOG = nolog, TRACE = trace, DEBUG4 = debug4, @@ -74,7 +78,6 @@ enum class Severity : int INFO = info, STATE = state, WARNING = warn, - warning = warn, WARN = warn, ERROR = error, FATAL = fatal @@ -319,7 +322,7 @@ class Logger static const std::unordered_map fVerbosityMap; static const std::unordered_map fSeverityMap; - static const std::array fSeverityNames; + static const std::array fSeverityNames; static const std::array fVerbosityNames; // protection for use after static destruction took place diff --git a/test/cycle.cxx b/test/cycle.cxx index d98d1e4..2245d68 100644 --- a/test/cycle.cxx +++ b/test/cycle.cxx @@ -38,7 +38,7 @@ int main() Logger::SetConsoleSeverity(Severity::fatal); cout << "initial severity >" << Logger::GetConsoleSeverity() << "<" << endl << endl; - array severitiesUp{{ Severity::nolog, Severity::trace, Severity::debug4, Severity::debug3, Severity::debug2, Severity::debug1, Severity::debug, Severity::info, Severity::state, Severity::warn, Severity::error, Severity::fatal }}; + array severitiesUp{{ Severity::nolog, Severity::trace, Severity::debug4, Severity::debug3, Severity::debug2, Severity::debug1, Severity::debug, Severity::info, Severity::state, Severity::warn, Severity::important, Severity::alarm, Severity::error, Severity::fatal }}; #ifdef FAIR_MIN_SEVERITY for (unsigned int i = static_cast(Severity::FAIR_MIN_SEVERITY); i < severitiesUp.size(); ++i) { #else @@ -57,7 +57,7 @@ int main() Logger::SetConsoleSeverity(Severity::fatal); cout << "initial severity >" << Logger::GetConsoleSeverity() << "<" << endl << endl; - array severitiesDown{{ Severity::error, Severity::warn, Severity::state, Severity::info, Severity::debug, Severity::debug1, Severity::debug2, Severity::debug3, Severity::debug4, Severity::trace, Severity::nolog, Severity::fatal }}; + array severitiesDown{{ Severity::error, Severity::alarm, Severity::important, Severity::warn, Severity::state, Severity::info, Severity::debug, Severity::debug1, Severity::debug2, Severity::debug3, Severity::debug4, Severity::trace, Severity::nolog, Severity::fatal }}; #ifdef FAIR_MIN_SEVERITY for (unsigned int i = 0; i < severitiesDown.size() - static_cast(Severity::FAIR_MIN_SEVERITY) - 1; ++i) { #else diff --git a/test/logger.cxx b/test/logger.cxx index 475c4d5..86f9f3c 100644 --- a/test/logger.cxx +++ b/test/logger.cxx @@ -17,18 +17,20 @@ void printEverySeverity() { static int i = 1; - LOG(nolog) << "nolog message, counter: " << i++; - LOG(trace) << "trace message, counter: " << i++; - LOG(debug4) << "debug4 message, counter: " << i++; - LOG(debug3) << "debug3 message, counter: " << i++; - LOG(debug2) << "debug2 message, counter: " << i++; - LOG(debug1) << "debug1 message, counter: " << i++; - LOG(debug) << "debug message, counter: " << i++; - LOG(info) << "info message, counter: " << i++; - LOG(state) << "state message, counter: " << i++; - LOG(warn) << "warning message, counter: " << i++; - LOG(error) << "error message, counter: " << i++; - LOG(fatal) << "fatal message, counter: " << i++; + LOG(nolog) << "nolog message, counter: " << i++; + LOG(trace) << "trace message, counter: " << i++; + LOG(debug4) << "debug4 message, counter: " << i++; + LOG(debug3) << "debug3 message, counter: " << i++; + LOG(debug2) << "debug2 message, counter: " << i++; + LOG(debug1) << "debug1 message, counter: " << i++; + LOG(debug) << "debug message, counter: " << i++; + LOG(info) << "info message, counter: " << i++; + LOG(state) << "state message, counter: " << i++; + LOG(warn) << "warning message, counter: " << i++; + LOG(important) << "important message, counter: " << i++; + LOG(alarm) << "alarm message, counter: " << i++; + LOG(error) << "error message, counter: " << i++; + LOG(fatal) << "fatal message, counter: " << i++; } void printAllVerbositiesWithSeverity(Severity sev) diff --git a/test/nolog.cxx b/test/nolog.cxx index eaa80bd..2d03c92 100644 --- a/test/nolog.cxx +++ b/test/nolog.cxx @@ -13,17 +13,19 @@ using namespace fair; void printEverySeverity() { - LOG(nolog) << "nolog message, counter: "; - LOG(trace) << "trace message, counter: "; - LOG(debug4) << "debug4 message, counter: "; - LOG(debug3) << "debug3 message, counter: "; - LOG(debug2) << "debug2 message, counter: "; - LOG(debug1) << "debug1 message, counter: "; - LOG(debug) << "debug message, counter: "; - LOG(info) << "info message, counter: " ; - LOG(state) << "state message, counter: "; - LOG(warn) << "warning message, counter: "; - LOG(error) << "error message, counter: "; + LOG(nolog) << "nolog message, counter: "; + LOG(trace) << "trace message, counter: "; + LOG(debug4) << "debug4 message, counter: "; + LOG(debug3) << "debug3 message, counter: "; + LOG(debug2) << "debug2 message, counter: "; + LOG(debug1) << "debug1 message, counter: "; + LOG(debug) << "debug message, counter: "; + LOG(info) << "info message, counter: "; + LOG(state) << "state message, counter: "; + LOG(warn) << "warning message, counter: "; + LOG(important) << "important message, counter: "; + LOG(alarm) << "alarm message, counter: "; + LOG(error) << "error message, counter: "; } void silentlyPrintAllVerbositiesWithSeverity(Severity sev) diff --git a/test/severity.cxx b/test/severity.cxx index 03bb85c..b6490a1 100644 --- a/test/severity.cxx +++ b/test/severity.cxx @@ -20,18 +20,20 @@ using namespace fair::logger::test; uint32_t printEverySeverity(uint32_t i) { - LOG(nolog) << "nolog message, counter: " << i++; - LOG(trace) << "trace message, counter: " << i++; - LOG(debug4) << "debug4 message, counter: " << i++; - LOG(debug3) << "debug3 message, counter: " << i++; - LOG(debug2) << "debug2 message, counter: " << i++; - LOG(debug1) << "debug1 message, counter: " << i++; - LOG(debug) << "debug message, counter: " << i++; - LOG(info) << "info message, counter: " << i++; - LOG(state) << "state message, counter: " << i++; - LOG(warn) << "warning message, counter: " << i++; - LOG(error) << "error message, counter: " << i++; - LOG(fatal) << "fatal message, counter: " << i++; + LOG(nolog) << "nolog message, counter: " << i++; + LOG(trace) << "trace message, counter: " << i++; + LOG(debug4) << "debug4 message, counter: " << i++; + LOG(debug3) << "debug3 message, counter: " << i++; + LOG(debug2) << "debug2 message, counter: " << i++; + LOG(debug1) << "debug1 message, counter: " << i++; + LOG(debug) << "debug message, counter: " << i++; + LOG(info) << "info message, counter: " << i++; + LOG(state) << "state message, counter: " << i++; + LOG(warn) << "warning message, counter: " << i++; + LOG(important) << "important message, counter: " << i++; + LOG(alarm) << "alarm message, counter: " << i++; + LOG(error) << "error message, counter: " << i++; + LOG(fatal) << "fatal message, counter: " << i++; return i; } @@ -45,7 +47,7 @@ void CheckSeverity(Severity severity) for (uint32_t i = 0; i < Logger::fSeverityNames.size(); ++i) { if (sev == Severity::nolog) { - if (i == 11) { + if (i == static_cast(fair::Severity::fatal)) { if (!Logger::Logging(static_cast(i))) { throw runtime_error(ToStr("expecting to be logging ", Logger::fSeverityNames.at(i), " during ", sev, ", but it is not.")); }