diff options
author | Tom Rondeau <trondeau@vt.edu> | 2012-06-13 09:50:09 -0400 |
---|---|---|
committer | Tom Rondeau <trondeau@vt.edu> | 2012-06-13 09:50:09 -0400 |
commit | 9e299d568123f8df5188d0850311cb7f5b5e11f2 (patch) | |
tree | 00763566d97871a7c5bb5a2410af8f97c2299684 /gnuradio-core/src/lib/runtime/gr_log.cc | |
parent | a87c609beb6aef9b584c7ff638cdffe7e3637e97 (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.cc | 35 |
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); +} |