diff options
-rw-r--r-- | src/Log.cpp | 8 | ||||
-rw-r--r-- | src/Log.h | 12 |
2 files changed, 16 insertions, 4 deletions
diff --git a/src/Log.cpp b/src/Log.cpp index 75380dd..35f3fae 100644 --- a/src/Log.cpp +++ b/src/Log.cpp @@ -38,6 +38,10 @@ void Logger::register_backend(LogBackend* backend) { void Logger::log(log_level_t level, const char* fmt, ...) { + if (level == discard) { + return; + } + int size = 100; std::string str; va_list ap; @@ -61,6 +65,10 @@ void Logger::log(log_level_t level, const char* fmt, ...) void Logger::logstr(log_level_t level, std::string message) { + if (level == discard) { + return; + } + /* Remove a potential trailing newline. * It doesn't look good in syslog */ @@ -44,10 +44,10 @@ #define SYSLOG_IDENT "ODR-DabMux" #define SYSLOG_FACILITY LOG_LOCAL0 -enum log_level_t {debug = 0, info, warn, error, alert, emerg}; +enum log_level_t {debug = 0, info, warn, error, alert, emerg, discard}; static const std::string levels_as_str[] = - { " ", " ", "WARN ", "ERROR", "ALERT", "EMERG"} ; + { " ", " ", "WARN ", "ERROR", "ALERT", "EMERG", "-----"} ; /** Abstract class all backends must inherit from */ class LogBackend { @@ -166,13 +166,17 @@ class LogLine { // Push the new element into the stringstream template <typename T> LogLine& operator<<(T s) { - os << s; + if (level_ != discard) { + os << s; + } return *this; } ~LogLine() { - logger_->logstr(level_, os.str()); + if (level_ != discard) { + logger_->logstr(level_, os.str()); + } } private: |