Skip to content

Commit 7b38395

Browse files
authored
Warn log level by default and userinfo to change it (#272)
1 parent 34aca7b commit 7b38395

File tree

3 files changed

+18
-10
lines changed

3 files changed

+18
-10
lines changed

examples/2-TaggedMetrics.cxx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ int main()
1212

1313
// Configure monitoring
1414
// Pass string with list of URLs as parameter
15-
auto monitoring = MonitoringFactory::Get("influxdbv2://localhost:8086/?bucket=adam&org=adam&token=v0SbCG4TRvHbHk82lckOT-T6iYY5VbGlXqOUnQlyaJNlT43eRnK_U8MllQT2kctwPFNwIqTO3HK4mnmGDCXk9g==");
15+
auto monitoring = MonitoringFactory::Get("stdout://debug:@/");
1616

1717
/// Add global tags
1818
monitoring->addGlobalTag("name", "test");

src/MonLogger.h

Lines changed: 14 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -34,16 +34,16 @@ namespace monitoring
3434

3535
/// List of possible log severities
3636
#ifdef O2_MONITORING_WITH_INFOLOGGER
37-
enum class Severity { Error = InfoLogger::Severity::Error,
38-
Warn = InfoLogger::Severity::Warning,
39-
Info = InfoLogger::Severity::Info,
40-
Silent = InfoLogger::Severity::Debug};
37+
enum class Severity { Error = InfoLogger::Severity::Error, // 69
38+
Warn = InfoLogger::Severity::Warning, // 87
39+
Info = InfoLogger::Severity::Info, // 73
40+
Debug = InfoLogger::Severity::Debug}; // 68
4141

4242
#else
4343
enum class Severity { Error = 31,
4444
Warn = 33,
4545
Info = 49,
46-
Silent = 50};
46+
Debug = 50};
4747
#endif
4848

4949

@@ -67,13 +67,16 @@ class MonLogger
6767
/// Returns Logger instance with current date and given severity
6868
/// \param severity - severity level
6969
/// \return - logger instance
70-
static MonLogger& Get(Severity severity = Severity::Silent)
70+
static MonLogger& Get(Severity severity = Severity::Debug)
7171
{
7272
static MonLogger loggerInstance;
7373
loggerInstance.logHeader(severity);
7474
return loggerInstance;
7575
}
7676

77+
/// Logger severity to be set by the user
78+
inline static Severity mLoggerSeverity = Severity::Warn;
79+
7780
/// Terminates log line
7881
/// return - string with color termination and new line
7982
#ifdef O2_MONITORING_WITH_INFOLOGGER
@@ -83,8 +86,9 @@ class MonLogger
8386
#endif
8487

8588
private:
86-
/// Makes sure Silent messages are muted
89+
/// Makes sure Debug messages are muted
8790
bool mMute = false;
91+
8892
#ifdef O2_MONITORING_WITH_INFOLOGGER
8993
/// InfoLogger log output stream
9094
InfoLogger mStream;
@@ -95,8 +99,9 @@ class MonLogger
9599
context.setField(InfoLoggerContext::FieldName::Facility, "Library");
96100
mStream.setContext(context);
97101
static InfoLogger::AutoMuteToken wToken({InfoLogger::Severity::Warning, InfoLogger::Level::Support, -1, nullptr, -1}, 2, 30);
102+
103+
mMute = (static_cast<int>(severity) < static_cast<int>(mLoggerSeverity)) ? true : false;
98104
switch(severity) {
99-
case Severity::Silent: mMute = true; break;
100105
case Severity::Warn: mStream << &wToken; break;
101106
default: mStream << static_cast<InfoLogger::Severity>(severity); break;
102107
}
@@ -106,7 +111,7 @@ class MonLogger
106111
std::ostream& mStream = std::cout;
107112
void logHeader(Severity severity)
108113
{
109-
if (severity == Severity::Silent) { mMute = true; }
114+
mMute = (static_cast<std::underlying_type<Severity>::type>(severity) > static_cast<std::underlying_type<Severity>::type>(mLoggerSeverity)) ? true : false;
110115
*this << "\033[0;" << static_cast<int>(severity) << "m";
111116
auto now = std::chrono::system_clock::to_time_t(std::chrono::system_clock::now());
112117
*this << std::put_time(std::localtime(&now), "%Y-%m-%d %X") << "\t" << "Monitoring" << "\t";

src/MonitoringFactory.cxx

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -180,6 +180,9 @@ std::unique_ptr<Backend> MonitoringFactory::GetBackend(std::string& url)
180180
throw MonitoringException("Factory", "Unrecognized backend " + parsedUrl.protocol);
181181
}
182182
try {
183+
if (parsedUrl.user == "debug") {
184+
MonLogger::mLoggerSeverity = Severity::Debug;
185+
}
183186
auto backend = iterator->second(parsedUrl);
184187
if (!parsedUrl.path.empty() && parsedUrl.path != "/") {
185188
SetVerbosity(parsedUrl.path.substr(parsedUrl.path.rfind("/")), backend);

0 commit comments

Comments
 (0)