diff options
| author | Andrej Rode <andrej.rode@ettus.com> | 2017-02-22 15:02:25 -0800 | 
|---|---|---|
| committer | Martin Braun <martin.braun@ettus.com> | 2017-02-23 14:59:31 -0800 | 
| commit | 644ee82123987b4271e97f088c758f1eee86c880 (patch) | |
| tree | 3ba4d1c105f652411457774afa24b2dc8b4c94bb /host/lib | |
| parent | 5964adcdc32a94c5a259a22b1bca406a3bf7b106 (diff) | |
| download | uhd-644ee82123987b4271e97f088c758f1eee86c880.tar.gz uhd-644ee82123987b4271e97f088c758f1eee86c880.tar.bz2 uhd-644ee82123987b4271e97f088c758f1eee86c880.zip  | |
utils: provide fallback to previous loglevel on reading environment/defines
Diffstat (limited to 'host/lib')
| -rw-r--r-- | host/lib/utils/log.cpp | 22 | 
1 files changed, 13 insertions, 9 deletions
diff --git a/host/lib/utils/log.cpp b/host/lib/utils/log.cpp index 7fc28f122..60614d29e 100644 --- a/host/lib/utils/log.cpp +++ b/host/lib/utils/log.cpp @@ -39,7 +39,7 @@ public:      uhd::log::severity_level file_level;      uhd::log::severity_level console_level; -    log_resource_type(void){ +    log_resource_type(void): level(uhd::log::info), file_level(uhd::log::info), console_level(uhd::log::info){          //file lock pointer must be null          _file_lock = NULL; @@ -54,13 +54,13 @@ public:          //allow override from macro definition  #ifdef UHD_LOG_MIN_LEVEL -        this->level = _get_log_level(BOOST_STRINGIZE(UHD_LOG_MIN_LEVEL)); +        this->level = _get_log_level(BOOST_STRINGIZE(UHD_LOG_MIN_LEVEL), this->level);  #endif  #if defined(UHD_LOG_FILE_LEVEL) && defined(UHD_LOG_FILE_PATH) -        this->file_level = _get_log_level(BOOST_STRINGIZE(UHD_LOG_FILE_LEVEL)); +        this->file_level = _get_log_level(BOOST_STRINGIZE(UHD_LOG_FILE_LEVEL), this->file_level);  #endif  #ifdef UHD_LOG_CONSOLE_LEVEL -        this->console_level = _get_log_level(BOOST_STRINGIZE(UHD_LOG_CONSOLE_LEVEL)); +        this->console_level = _get_log_level(BOOST_STRINGIZE(UHD_LOG_CONSOLE_LEVEL), this->console_level);  #endif  #ifdef UHD_LOG_FILE          this->log_file_target = BOOST_STRINGIZE(UHD_LOG_FILE); @@ -69,13 +69,13 @@ public:          //allow override from environment variables          const char * log_level_env = std::getenv("UHD_LOG_LEVEL"); -        if (log_level_env != NULL && log_level_env[0] != '\0') this->level = _get_log_level(log_level_env); +        if (log_level_env != NULL && log_level_env[0] != '\0') this->level = _get_log_level(log_level_env, this->level);          const char * log_file_level_env = std::getenv("UHD_LOG_FILE_LEVEL"); -        if (log_file_level_env != NULL && log_file_level_env[0] != '\0') this->file_level = _get_log_level(log_file_level_env); +        if (log_file_level_env != NULL && log_file_level_env[0] != '\0') this->file_level = _get_log_level(log_file_level_env, this->file_level);          const char * log_console_level_env = std::getenv("UHD_LOG_CONSOLE_LEVEL"); -        if (log_console_level_env != NULL && log_console_level_env[0] != '\0') this->console_level = _get_log_level(log_console_level_env); +        if (log_console_level_env != NULL && log_console_level_env[0] != '\0') this->console_level = _get_log_level(log_console_level_env, this->console_level);          const char* log_file_env = std::getenv("UHD_LOG_FILE");          if ((log_file_env != NULL) && (log_file_env[0] != '\0')) { @@ -109,13 +109,16 @@ private:      //! set the log level from a string that is either a digit or an enum name      bool file_logging;      std::string log_file_target; -    uhd::log::severity_level _get_log_level(const std::string &log_level_str){ +    uhd::log::severity_level _get_log_level(const std::string &log_level_str, +                                            const uhd::log::severity_level &previous_level){          if (std::isdigit(log_level_str[0])) {              const uhd::log::severity_level log_level_num =                  uhd::log::severity_level(std::stoi(log_level_str));              if (log_level_num >= uhd::log::trace and                  log_level_num <= uhd::log::fatal) {                  return log_level_num; +            }else{ +                return previous_level;              }          } @@ -127,7 +130,8 @@ private:          if_loglevel_equal(warning);          if_loglevel_equal(error);          if_loglevel_equal(fatal); -        return uhd::log::off; +        if_loglevel_equal(off); +        return previous_level;      }      //file stream and lock:  | 
