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
63820e5f2c
|
@ -147,10 +147,12 @@ const unordered_map<string, Verbosity> Logger::fVerbosityMap =
|
|||
{ "high", Verbosity::high },
|
||||
{ "medium", Verbosity::medium },
|
||||
{ "low", Verbosity::low },
|
||||
{ "verylow", Verbosity::verylow },
|
||||
{ "VERYHIGH", Verbosity::veryhigh },
|
||||
{ "HIGH", Verbosity::high },
|
||||
{ "MEDIUM", Verbosity::medium },
|
||||
{ "LOW", Verbosity::low }
|
||||
{ "LOW", Verbosity::low },
|
||||
{ "VERYLOW", Verbosity::verylow }
|
||||
};
|
||||
|
||||
const unordered_map<string, Severity> Logger::fSeverityMap =
|
||||
|
@ -161,16 +163,14 @@ const unordered_map<string, Severity> Logger::fSeverityMap =
|
|||
{ "ERROR", Severity::error },
|
||||
{ "warn", Severity::warn },
|
||||
{ "WARN", Severity::warn },
|
||||
{ "warning", Severity::warning },
|
||||
{ "WARNING", Severity::warning },
|
||||
{ "warning", Severity::warn },
|
||||
{ "WARNING", Severity::warn },
|
||||
{ "state", Severity::state },
|
||||
{ "STATE", Severity::state },
|
||||
{ "info", Severity::info },
|
||||
{ "INFO", Severity::info },
|
||||
{ "debug", Severity::debug },
|
||||
{ "DEBUG", Severity::debug },
|
||||
{ "trace", Severity::trace },
|
||||
{ "TRACE", Severity::trace },
|
||||
{ "debug1", Severity::debug1 },
|
||||
{ "DEBUG1", Severity::debug1 },
|
||||
{ "debug2", Severity::debug2 },
|
||||
|
@ -178,7 +178,9 @@ const unordered_map<string, Severity> Logger::fSeverityMap =
|
|||
{ "debug3", Severity::debug3 },
|
||||
{ "DEBUG3", Severity::debug3 },
|
||||
{ "debug4", Severity::debug4 },
|
||||
{ "DEBUG4", Severity::debug4 }
|
||||
{ "DEBUG4", Severity::debug4 },
|
||||
{ "trace", Severity::trace },
|
||||
{ "TRACE", Severity::trace }
|
||||
};
|
||||
|
||||
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",
|
||||
"medium",
|
||||
"high",
|
||||
|
@ -253,6 +256,11 @@ void Logger::SetConsoleSeverity(const string& severityStr)
|
|||
}
|
||||
}
|
||||
|
||||
Severity Logger::GetConsoleSeverity()
|
||||
{
|
||||
return fConsoleSeverity;
|
||||
}
|
||||
|
||||
void Logger::SetFileSeverity(const Severity 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()
|
||||
{
|
||||
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)
|
||||
{
|
||||
fColored = colored;
|
||||
|
@ -503,15 +592,21 @@ Logger& Logger::Log()
|
|||
fBWOut << "[" << tsstr << "]";
|
||||
}
|
||||
|
||||
if (fVerbosity > Verbosity::verylow)
|
||||
{
|
||||
fBWOut << "[" << fMetaData.severity_name << "]";
|
||||
}
|
||||
|
||||
if (fVerbosity == Verbosity::veryhigh)
|
||||
{
|
||||
fBWOut << "[" << fMetaData.file << ":" << fMetaData.line << ":" << fMetaData.func << "]";
|
||||
}
|
||||
|
||||
if (fVerbosity != Verbosity::verylow)
|
||||
{
|
||||
fBWOut << " ";
|
||||
}
|
||||
}
|
||||
|
||||
if (fColored && (LoggingToConsole()))
|
||||
{
|
||||
|
@ -525,15 +620,21 @@ Logger& Logger::Log()
|
|||
fColorOut << "[" << startColor(Color::fgCyan) << tsstr << endColor() << "]";
|
||||
}
|
||||
|
||||
if (fVerbosity > Verbosity::verylow)
|
||||
{
|
||||
fColorOut << "[" << ColoredSeverityWriter(fMetaData.severity) << "]";
|
||||
}
|
||||
|
||||
if (fVerbosity == Verbosity::veryhigh)
|
||||
{
|
||||
fColorOut << "[" << ColorOut(Color::fgBlue, fMetaData.file) << ":" << ColorOut(Color::fgYellow, fMetaData.line) << ":" << ColorOut(Color::fgBlue, fMetaData.func) << "]";
|
||||
}
|
||||
|
||||
if (fVerbosity != Verbosity::verylow)
|
||||
{
|
||||
fColorOut << " ";
|
||||
}
|
||||
}
|
||||
|
||||
return *this;
|
||||
}
|
||||
|
|
|
@ -59,17 +59,20 @@ enum class Severity : int
|
|||
};
|
||||
|
||||
// verbosity levels:
|
||||
// verylow: message
|
||||
// low: [severity] message
|
||||
// medium: [HH:MM:SS][severity] message
|
||||
// high: [process name][HH:MM:SS:µS][severity] message
|
||||
// veryhigh: [process name][HH:MM:SS:µS][severity][file:line:function] message
|
||||
enum class Verbosity : int
|
||||
{
|
||||
verylow,
|
||||
low,
|
||||
medium,
|
||||
high,
|
||||
veryhigh,
|
||||
// backwards-compatibility:
|
||||
VERYLOW = verylow,
|
||||
LOW = low,
|
||||
MEDIUM = medium,
|
||||
HIGH = high,
|
||||
|
@ -116,6 +119,7 @@ class Logger
|
|||
|
||||
static void SetConsoleSeverity(const Severity severity);
|
||||
static void SetConsoleSeverity(const std::string& severityStr);
|
||||
static Severity GetConsoleSeverity();
|
||||
|
||||
static void SetFileSeverity(const Severity severity);
|
||||
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 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 std::string& severityStr);
|
||||
|
||||
static void SetVerbosity(const Verbosity verbosity);
|
||||
static void SetVerbosity(const std::string& verbosityStr);
|
||||
static Verbosity GetVerbosity();
|
||||
|
||||
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, Severity> fSeverityMap;
|
||||
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);
|
||||
|
||||
|
|
|
@ -39,6 +39,9 @@ void printAllVerbositiesWithSeverity(Severity 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;
|
||||
Logger::SetVerbosity(Verbosity::low);
|
||||
printEverySeverity();
|
||||
|
@ -57,6 +60,8 @@ void silentlyPrintAllVerbositiesWithSeverity(Severity sev)
|
|||
{
|
||||
Logger::SetConsoleSeverity(sev);
|
||||
|
||||
Logger::SetVerbosity(Verbosity::verylow);
|
||||
printEverySeverity();
|
||||
Logger::SetVerbosity(Verbosity::low);
|
||||
printEverySeverity();
|
||||
Logger::SetVerbosity(Verbosity::medium);
|
||||
|
|
Loading…
Reference in New Issue
Block a user