summaryrefslogtreecommitdiff
path: root/gnuradio-core/src/lib/runtime/gr_log.cc
diff options
context:
space:
mode:
authorTom Rondeau <trondeau@vt.edu>2012-06-13 09:50:09 -0400
committerTom Rondeau <trondeau@vt.edu>2012-06-13 09:50:09 -0400
commit9e299d568123f8df5188d0850311cb7f5b5e11f2 (patch)
tree00763566d97871a7c5bb5a2410af8f97c2299684 /gnuradio-core/src/lib/runtime/gr_log.cc
parenta87c609beb6aef9b584c7ff638cdffe7e3637e97 (diff)
log: added a macro and routine to set log level from config file.
Also worked on documentation of logging features.
Diffstat (limited to 'gnuradio-core/src/lib/runtime/gr_log.cc')
-rw-r--r--gnuradio-core/src/lib/runtime/gr_log.cc35
1 files changed, 35 insertions, 0 deletions
diff --git a/gnuradio-core/src/lib/runtime/gr_log.cc b/gnuradio-core/src/lib/runtime/gr_log.cc
index 7af55b155c..9be3ba04fd 100644
--- a/gnuradio-core/src/lib/runtime/gr_log.cc
+++ b/gnuradio-core/src/lib/runtime/gr_log.cc
@@ -38,6 +38,9 @@
#endif
#include <gr_log.h>
+#include <stdexcept>
+#include <algorithm>
+
void
logger_load_config(const std::string &config_filename)
@@ -52,3 +55,35 @@ logger_load_config(const std::string &config_filename)
PropertyConfigurator::configure(config_filename);
}
}
+
+void
+logger_set_level(LoggerPtr logger, const std::string &level)
+{
+ std::string nocase = level;
+ std::transform(level.begin(), level.end(), nocase.begin(), ::tolower);
+
+ if(nocase == "off")
+ logger_set_level(logger, log4cxx::Level::getOff());
+ else if(nocase == "all")
+ logger_set_level(logger, log4cxx::Level::getAll());
+ else if(nocase == "trace")
+ logger_set_level(logger, log4cxx::Level::getTrace());
+ else if(nocase == "debug")
+ logger_set_level(logger, log4cxx::Level::getDebug());
+ else if(nocase == "info")
+ logger_set_level(logger, log4cxx::Level::getInfo());
+ else if(nocase == "warn")
+ logger_set_level(logger, log4cxx::Level::getWarn());
+ else if(nocase == "error")
+ logger_set_level(logger, log4cxx::Level::getError());
+ else if(nocase == "fatal")
+ logger_set_level(logger, log4cxx::Level::getFatal());
+ else
+ throw std::runtime_error("logger_set_level: Bad level type.\n");
+}
+
+void
+logger_set_level(LoggerPtr logger, log4cxx::LevelPtr level)
+{
+ logger->setLevel(level);
+}