aboutsummaryrefslogtreecommitdiffstats
path: root/host/lib
diff options
context:
space:
mode:
authorMartin Braun <martin.braun@ettus.com>2017-04-20 13:38:20 -0700
committerMartin Braun <martin.braun@ettus.com>2017-04-20 13:38:20 -0700
commit107c105e403f4c4cbd2257219c088d62a3875082 (patch)
treee79f715697e497756ffebd472cc7f709d2ca6ede /host/lib
parent372228d2a61337ca89a139eec666e531e6723e74 (diff)
downloaduhd-107c105e403f4c4cbd2257219c088d62a3875082.tar.gz
uhd-107c105e403f4c4cbd2257219c088d62a3875082.tar.bz2
uhd-107c105e403f4c4cbd2257219c088d62a3875082.zip
log: Fix missing add_logger, fix clearing of queue
Diffstat (limited to 'host/lib')
-rw-r--r--host/lib/utils/log.cpp27
1 files changed, 25 insertions, 2 deletions
diff --git a/host/lib/utils/log.cpp b/host/lib/utils/log.cpp
index 1d87a0b3d..5d0a9cf5b 100644
--- a/host/lib/utils/log.cpp
+++ b/host/lib/utils/log.cpp
@@ -221,13 +221,29 @@ public:
for (const auto &logger : _loggers) {
auto level = logger_level.find(logger.first);
if(level != logger_level.end() && log_info.verbosity < level->second){
- UHD_VAR(level->second)
- continue;
+ continue;
}
logger.second(log_info);
}
}
}
+
+ // Exit procedure: Clear the queue
+ uhd::log::logging_info log_info;
+ while (_log_queue.pop_with_haste(log_info)) {
+ for (const auto &logger : _loggers) {
+ auto level = logger_level.find(logger.first);
+ if (level != logger_level.end() && log_info.verbosity < level->second){
+ continue;
+ }
+ logger.second(log_info);
+ }
+ }
+ }
+
+ void add_logger(const std::string &key, uhd::log::log_fn_t logger_fn)
+ {
+ _loggers[key] = logger_fn;
}
private:
@@ -297,6 +313,13 @@ uhd::_log::log::~log(void)
}
}
+
+void
+uhd::log::add_logger(const std::string &key, log_fn_t logger_fn)
+{
+ log_rs().add_logger(key, logger_fn);
+}
+
void
uhd::log::set_log_level(uhd::log::severity_level level){
log_rs().global_level = level;