mirror of
https://github.com/FairRootGroup/FairLogger.git
synced 2025-10-13 08:41:12 +00:00
Add cycle methods and verylow verbosity (msg only)
This commit is contained in:
parent
de02bd068f
commit
ec1f7adf61
|
@ -147,10 +147,12 @@ const unordered_map<string, Verbosity> Logger::fVerbosityMap =
|
||||||
{ "high", Verbosity::high },
|
{ "high", Verbosity::high },
|
||||||
{ "medium", Verbosity::medium },
|
{ "medium", Verbosity::medium },
|
||||||
{ "low", Verbosity::low },
|
{ "low", Verbosity::low },
|
||||||
|
{ "verylow", Verbosity::verylow },
|
||||||
{ "VERYHIGH", Verbosity::veryhigh },
|
{ "VERYHIGH", Verbosity::veryhigh },
|
||||||
{ "HIGH", Verbosity::high },
|
{ "HIGH", Verbosity::high },
|
||||||
{ "MEDIUM", Verbosity::medium },
|
{ "MEDIUM", Verbosity::medium },
|
||||||
{ "LOW", Verbosity::low }
|
{ "LOW", Verbosity::low },
|
||||||
|
{ "VERYLOW", Verbosity::verylow }
|
||||||
};
|
};
|
||||||
|
|
||||||
const unordered_map<string, Severity> Logger::fSeverityMap =
|
const unordered_map<string, Severity> Logger::fSeverityMap =
|
||||||
|
@ -161,16 +163,14 @@ const unordered_map<string, Severity> Logger::fSeverityMap =
|
||||||
{ "ERROR", Severity::error },
|
{ "ERROR", Severity::error },
|
||||||
{ "warn", Severity::warn },
|
{ "warn", Severity::warn },
|
||||||
{ "WARN", Severity::warn },
|
{ "WARN", Severity::warn },
|
||||||
{ "warning", Severity::warning },
|
{ "warning", Severity::warn },
|
||||||
{ "WARNING", Severity::warning },
|
{ "WARNING", Severity::warn },
|
||||||
{ "state", Severity::state },
|
{ "state", Severity::state },
|
||||||
{ "STATE", Severity::state },
|
{ "STATE", Severity::state },
|
||||||
{ "info", Severity::info },
|
{ "info", Severity::info },
|
||||||
{ "INFO", Severity::info },
|
{ "INFO", Severity::info },
|
||||||
{ "debug", Severity::debug },
|
{ "debug", Severity::debug },
|
||||||
{ "DEBUG", Severity::debug },
|
{ "DEBUG", Severity::debug },
|
||||||
{ "trace", Severity::trace },
|
|
||||||
{ "TRACE", Severity::trace },
|
|
||||||
{ "debug1", Severity::debug1 },
|
{ "debug1", Severity::debug1 },
|
||||||
{ "DEBUG1", Severity::debug1 },
|
{ "DEBUG1", Severity::debug1 },
|
||||||
{ "debug2", Severity::debug2 },
|
{ "debug2", Severity::debug2 },
|
||||||
|
@ -178,7 +178,9 @@ const unordered_map<string, Severity> Logger::fSeverityMap =
|
||||||
{ "debug3", Severity::debug3 },
|
{ "debug3", Severity::debug3 },
|
||||||
{ "DEBUG3", Severity::debug3 },
|
{ "DEBUG3", Severity::debug3 },
|
||||||
{ "debug4", Severity::debug4 },
|
{ "debug4", Severity::debug4 },
|
||||||
{ "DEBUG4", Severity::debug4 }
|
{ "DEBUG4", Severity::debug4 },
|
||||||
|
{ "trace", Severity::trace },
|
||||||
|
{ "TRACE", Severity::trace }
|
||||||
};
|
};
|
||||||
|
|
||||||
const array<string, 12> Logger::fSeverityNames =
|
const array<string, 12> Logger::fSeverityNames =
|
||||||
|
@ -199,9 +201,10 @@ const array<string, 12> Logger::fSeverityNames =
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
const array<string, 4> Logger::fVerbosityNames =
|
const array<string, 5> Logger::fVerbosityNames =
|
||||||
{
|
{
|
||||||
{
|
{
|
||||||
|
"verylow",
|
||||||
"low",
|
"low",
|
||||||
"medium",
|
"medium",
|
||||||
"high",
|
"high",
|
||||||
|
@ -253,6 +256,11 @@ void Logger::SetConsoleSeverity(const string& severityStr)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Severity Logger::GetConsoleSeverity()
|
||||||
|
{
|
||||||
|
return fConsoleSeverity;
|
||||||
|
}
|
||||||
|
|
||||||
void Logger::SetFileSeverity(const Severity severity)
|
void Logger::SetFileSeverity(const Severity severity)
|
||||||
{
|
{
|
||||||
fFileSeverity = severity;
|
fFileSeverity = severity;
|
||||||
|
@ -291,6 +299,82 @@ void Logger::SetCustomSeverity(const string& key, const string& severityStr)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
auto Logger::CycleConsoleSeverityUp() -> void
|
||||||
|
{
|
||||||
|
size_t current = static_cast<size_t>(fConsoleSeverity);
|
||||||
|
if (current == fSeverityNames.size() - 1) {
|
||||||
|
SetConsoleSeverity(static_cast<Severity>(0));
|
||||||
|
} else {
|
||||||
|
SetConsoleSeverity(static_cast<Severity>(current + 1));
|
||||||
|
}
|
||||||
|
size_t newCurrent = static_cast<size_t>(fConsoleSeverity);
|
||||||
|
stringstream ss;
|
||||||
|
|
||||||
|
for (int i = 0; i < fSeverityNames.size(); ++i) {
|
||||||
|
ss << (i == newCurrent ? ">" : " ") << fSeverityNames.at(i) << (i == newCurrent ? "<" : " ");
|
||||||
|
}
|
||||||
|
|
||||||
|
ss << "\n\n";
|
||||||
|
cout << ss.str() << flush;
|
||||||
|
}
|
||||||
|
|
||||||
|
auto Logger::CycleConsoleSeverityDown() -> void
|
||||||
|
{
|
||||||
|
size_t current = static_cast<size_t>(fConsoleSeverity);
|
||||||
|
if (current == 0) {
|
||||||
|
SetConsoleSeverity(static_cast<Severity>(fSeverityNames.size() - 1));
|
||||||
|
} else {
|
||||||
|
SetConsoleSeverity(static_cast<Severity>(current - 1));
|
||||||
|
}
|
||||||
|
size_t newCurrent = static_cast<size_t>(fConsoleSeverity);
|
||||||
|
stringstream ss;
|
||||||
|
|
||||||
|
for (int i = 0; i < fSeverityNames.size(); ++i) {
|
||||||
|
ss << (i == newCurrent ? ">" : " ") << fSeverityNames.at(i) << (i == newCurrent ? "<" : " ");
|
||||||
|
}
|
||||||
|
|
||||||
|
ss << "\n\n";
|
||||||
|
cout << ss.str() << flush;
|
||||||
|
}
|
||||||
|
|
||||||
|
auto Logger::CycleVerbosityUp() -> void
|
||||||
|
{
|
||||||
|
size_t current = static_cast<size_t>(fVerbosity);
|
||||||
|
if (current == fVerbosityNames.size() - 1) {
|
||||||
|
SetVerbosity(static_cast<Verbosity>(0));
|
||||||
|
} else {
|
||||||
|
SetVerbosity(static_cast<Verbosity>(current + 1));
|
||||||
|
}
|
||||||
|
size_t newCurrent = static_cast<size_t>(fVerbosity);
|
||||||
|
stringstream ss;
|
||||||
|
|
||||||
|
for (int i = 0; i < fVerbosityNames.size(); ++i) {
|
||||||
|
ss << (i == newCurrent ? ">" : " ") << fVerbosityNames.at(i) << (i == newCurrent ? "<" : " ");
|
||||||
|
}
|
||||||
|
|
||||||
|
ss << "\n\n";
|
||||||
|
cout << ss.str() << flush;
|
||||||
|
}
|
||||||
|
|
||||||
|
auto Logger::CycleVerbosityDown() -> void
|
||||||
|
{
|
||||||
|
size_t current = static_cast<size_t>(fVerbosity);
|
||||||
|
if (current == 0) {
|
||||||
|
SetVerbosity(static_cast<Verbosity>(fVerbosityNames.size() - 1));
|
||||||
|
} else {
|
||||||
|
SetVerbosity(static_cast<Verbosity>(current - 1));
|
||||||
|
}
|
||||||
|
size_t newCurrent = static_cast<size_t>(fVerbosity);
|
||||||
|
stringstream ss;
|
||||||
|
|
||||||
|
for (int i = 0; i < fVerbosityNames.size(); ++i) {
|
||||||
|
ss << (i == newCurrent ? ">" : " ") << fVerbosityNames.at(i) << (i == newCurrent ? "<" : " ");
|
||||||
|
}
|
||||||
|
|
||||||
|
ss << "\n\n";
|
||||||
|
cout << ss.str() << flush;
|
||||||
|
}
|
||||||
|
|
||||||
void Logger::UpdateMinSeverity()
|
void Logger::UpdateMinSeverity()
|
||||||
{
|
{
|
||||||
fMinSeverity = (fConsoleSeverity <= fFileSeverity) ? fFileSeverity : fConsoleSeverity;
|
fMinSeverity = (fConsoleSeverity <= fFileSeverity) ? fFileSeverity : fConsoleSeverity;
|
||||||
|
@ -351,6 +435,11 @@ void Logger::SetVerbosity(const string& verbosityStr)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Verbosity Logger::GetVerbosity()
|
||||||
|
{
|
||||||
|
return fVerbosity;
|
||||||
|
}
|
||||||
|
|
||||||
void Logger::SetConsoleColor(const bool colored)
|
void Logger::SetConsoleColor(const bool colored)
|
||||||
{
|
{
|
||||||
fColored = colored;
|
fColored = colored;
|
||||||
|
@ -503,14 +592,20 @@ Logger& Logger::Log()
|
||||||
fBWOut << "[" << tsstr << "]";
|
fBWOut << "[" << tsstr << "]";
|
||||||
}
|
}
|
||||||
|
|
||||||
fBWOut << "[" << fMetaData.severity_name << "]";
|
if (fVerbosity > Verbosity::verylow)
|
||||||
|
{
|
||||||
|
fBWOut << "[" << fMetaData.severity_name << "]";
|
||||||
|
}
|
||||||
|
|
||||||
if (fVerbosity == Verbosity::veryhigh)
|
if (fVerbosity == Verbosity::veryhigh)
|
||||||
{
|
{
|
||||||
fBWOut << "[" << fMetaData.file << ":" << fMetaData.line << ":" << fMetaData.func << "]";
|
fBWOut << "[" << fMetaData.file << ":" << fMetaData.line << ":" << fMetaData.func << "]";
|
||||||
}
|
}
|
||||||
|
|
||||||
fBWOut << " ";
|
if (fVerbosity != Verbosity::verylow)
|
||||||
|
{
|
||||||
|
fBWOut << " ";
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (fColored && (LoggingToConsole()))
|
if (fColored && (LoggingToConsole()))
|
||||||
|
@ -525,14 +620,20 @@ Logger& Logger::Log()
|
||||||
fColorOut << "[" << startColor(Color::fgCyan) << tsstr << endColor() << "]";
|
fColorOut << "[" << startColor(Color::fgCyan) << tsstr << endColor() << "]";
|
||||||
}
|
}
|
||||||
|
|
||||||
fColorOut << "[" << ColoredSeverityWriter(fMetaData.severity) << "]";
|
if (fVerbosity > Verbosity::verylow)
|
||||||
|
{
|
||||||
|
fColorOut << "[" << ColoredSeverityWriter(fMetaData.severity) << "]";
|
||||||
|
}
|
||||||
|
|
||||||
if (fVerbosity == Verbosity::veryhigh)
|
if (fVerbosity == Verbosity::veryhigh)
|
||||||
{
|
{
|
||||||
fColorOut << "[" << ColorOut(Color::fgBlue, fMetaData.file) << ":" << ColorOut(Color::fgYellow, fMetaData.line) << ":" << ColorOut(Color::fgBlue, fMetaData.func) << "]";
|
fColorOut << "[" << ColorOut(Color::fgBlue, fMetaData.file) << ":" << ColorOut(Color::fgYellow, fMetaData.line) << ":" << ColorOut(Color::fgBlue, fMetaData.func) << "]";
|
||||||
}
|
}
|
||||||
|
|
||||||
fColorOut << " ";
|
if (fVerbosity != Verbosity::verylow)
|
||||||
|
{
|
||||||
|
fColorOut << " ";
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return *this;
|
return *this;
|
||||||
|
|
|
@ -59,17 +59,20 @@ enum class Severity : int
|
||||||
};
|
};
|
||||||
|
|
||||||
// verbosity levels:
|
// verbosity levels:
|
||||||
|
// verylow: message
|
||||||
// low: [severity] message
|
// low: [severity] message
|
||||||
// medium: [HH:MM:SS][severity] message
|
// medium: [HH:MM:SS][severity] message
|
||||||
// high: [process name][HH:MM:SS:µS][severity] message
|
// high: [process name][HH:MM:SS:µS][severity] message
|
||||||
// veryhigh: [process name][HH:MM:SS:µS][severity][file:line:function] message
|
// veryhigh: [process name][HH:MM:SS:µS][severity][file:line:function] message
|
||||||
enum class Verbosity : int
|
enum class Verbosity : int
|
||||||
{
|
{
|
||||||
|
verylow,
|
||||||
low,
|
low,
|
||||||
medium,
|
medium,
|
||||||
high,
|
high,
|
||||||
veryhigh,
|
veryhigh,
|
||||||
// backwards-compatibility:
|
// backwards-compatibility:
|
||||||
|
VERYLOW = verylow,
|
||||||
LOW = low,
|
LOW = low,
|
||||||
MEDIUM = medium,
|
MEDIUM = medium,
|
||||||
HIGH = high,
|
HIGH = high,
|
||||||
|
@ -116,6 +119,7 @@ class Logger
|
||||||
|
|
||||||
static void SetConsoleSeverity(const Severity severity);
|
static void SetConsoleSeverity(const Severity severity);
|
||||||
static void SetConsoleSeverity(const std::string& severityStr);
|
static void SetConsoleSeverity(const std::string& severityStr);
|
||||||
|
static Severity GetConsoleSeverity();
|
||||||
|
|
||||||
static void SetFileSeverity(const Severity severity);
|
static void SetFileSeverity(const Severity severity);
|
||||||
static void SetFileSeverity(const std::string& severityStr);
|
static void SetFileSeverity(const std::string& severityStr);
|
||||||
|
@ -123,11 +127,17 @@ class Logger
|
||||||
static void SetCustomSeverity(const std::string& key, const Severity severity);
|
static void SetCustomSeverity(const std::string& key, const Severity severity);
|
||||||
static void SetCustomSeverity(const std::string& key, const std::string& severityStr);
|
static void SetCustomSeverity(const std::string& key, const std::string& severityStr);
|
||||||
|
|
||||||
|
static void CycleConsoleSeverityUp();
|
||||||
|
static void CycleConsoleSeverityDown();
|
||||||
|
static void CycleVerbosityUp();
|
||||||
|
static void CycleVerbosityDown();
|
||||||
|
|
||||||
static bool Logging(const Severity severity);
|
static bool Logging(const Severity severity);
|
||||||
static bool Logging(const std::string& severityStr);
|
static bool Logging(const std::string& severityStr);
|
||||||
|
|
||||||
static void SetVerbosity(const Verbosity verbosity);
|
static void SetVerbosity(const Verbosity verbosity);
|
||||||
static void SetVerbosity(const std::string& verbosityStr);
|
static void SetVerbosity(const std::string& verbosityStr);
|
||||||
|
static Verbosity GetVerbosity();
|
||||||
|
|
||||||
static void SetConsoleColor(const bool colored = true);
|
static void SetConsoleColor(const bool colored = true);
|
||||||
|
|
||||||
|
@ -178,7 +188,7 @@ class Logger
|
||||||
static const std::unordered_map<std::string, Verbosity> fVerbosityMap;
|
static const std::unordered_map<std::string, Verbosity> fVerbosityMap;
|
||||||
static const std::unordered_map<std::string, Severity> fSeverityMap;
|
static const std::unordered_map<std::string, Severity> fSeverityMap;
|
||||||
static const std::array<std::string, 12> fSeverityNames;
|
static const std::array<std::string, 12> fSeverityNames;
|
||||||
static const std::array<std::string, 4> fVerbosityNames;
|
static const std::array<std::string, 5> fVerbosityNames;
|
||||||
|
|
||||||
virtual ~Logger() noexcept(false);
|
virtual ~Logger() noexcept(false);
|
||||||
|
|
||||||
|
|
|
@ -39,6 +39,9 @@ void printAllVerbositiesWithSeverity(Severity sev)
|
||||||
{
|
{
|
||||||
Logger::SetConsoleSeverity(sev);
|
Logger::SetConsoleSeverity(sev);
|
||||||
|
|
||||||
|
cout << endl << "cout: >>> testing severity '" << Logger::SeverityName(sev) << "' with 'verylow' verbosity..." << endl;
|
||||||
|
Logger::SetVerbosity(Verbosity::verylow);
|
||||||
|
printEverySeverity();
|
||||||
cout << endl << "cout: >>> testing severity '" << Logger::SeverityName(sev) << "' with 'low' verbosity..." << endl;
|
cout << endl << "cout: >>> testing severity '" << Logger::SeverityName(sev) << "' with 'low' verbosity..." << endl;
|
||||||
Logger::SetVerbosity(Verbosity::low);
|
Logger::SetVerbosity(Verbosity::low);
|
||||||
printEverySeverity();
|
printEverySeverity();
|
||||||
|
@ -57,6 +60,8 @@ void silentlyPrintAllVerbositiesWithSeverity(Severity sev)
|
||||||
{
|
{
|
||||||
Logger::SetConsoleSeverity(sev);
|
Logger::SetConsoleSeverity(sev);
|
||||||
|
|
||||||
|
Logger::SetVerbosity(Verbosity::verylow);
|
||||||
|
printEverySeverity();
|
||||||
Logger::SetVerbosity(Verbosity::low);
|
Logger::SetVerbosity(Verbosity::low);
|
||||||
printEverySeverity();
|
printEverySeverity();
|
||||||
Logger::SetVerbosity(Verbosity::medium);
|
Logger::SetVerbosity(Verbosity::medium);
|
||||||
|
|
Loading…
Reference in New Issue
Block a user