@@ -29,7 +29,8 @@ namespace monitoring
2929// / List of possible log severities
3030enum class Severity { Error = 31 ,
3131 Warn = 33 ,
32- Info = 49 };
32+ Info = 49 ,
33+ Debug = 50 };
3334
3435// / Simple Monitoring logging class
3536class MonLogger
@@ -41,19 +42,21 @@ class MonLogger
4142 template <typename T>
4243 MonLogger& operator <<(const T& log)
4344 {
44- mStream << log;
45+ if (MonLogger::globalSeverity >= severity) {
46+ mStream << log;
47+ }
4548 return *this ;
4649 }
4750
4851 // / Singleton
4952 // / Returns Logger instance with current date and given severity
5053 // / \param severity - severity level
5154 // / \return - logger instance
52- static MonLogger& Get (Severity severity = Severity::Info )
55+ static MonLogger& Get (Severity severity = Severity::Debug )
5356 {
5457 static MonLogger loggerInstance;
58+ loggerInstance.instanceSeverity (severity);
5559 loggerInstance.setDate ();
56- loggerInstance.setSeverity (severity);
5760 return loggerInstance;
5861 }
5962
@@ -64,7 +67,13 @@ class MonLogger
6467 return " \033 [0m\n " ;
6568 }
6669
70+ // / Currently set severity
71+ const Severity globalSeverity = Severity::Info;
72+
6773 private:
74+ // / Instance severity
75+ Severity severity;
76+
6877 // / Log stream
6978 std::ostream& mStream ;
7079
@@ -77,14 +86,15 @@ class MonLogger
7786 void setDate ()
7887 {
7988 auto now = std::chrono::system_clock::to_time_t (std::chrono::system_clock::now ());
80- mStream << std::put_time (std::localtime (&now), " %Y-%m-%d %X" ) << " \t " << " Monitoring" << " \t " ;
89+ * this << std::put_time (std::localtime (&now), " %Y-%m-%d %X" ) << " \t " << " Monitoring" << " \t " ;
8190 }
8291
8392 // / Sets log color based on severity
8493 // / \param severity - log severity
85- void setSeverity (Severity severity )
94+ void instanceSeverity (Severity desiredSeverity )
8695 {
87- mStream << " \033 [0;" << static_cast <int >(severity) << " m" ;
96+ severity = desiredSeverity;
97+ *this << " \033 [0;" << static_cast <int >(severity) << " m" ;
8898 }
8999
90100 // / Delete copy and move constructors
0 commit comments