diff options
author | Tom Rondeau <trondeau@vt.edu> | 2012-09-06 12:37:22 -0400 |
---|---|---|
committer | Tom Rondeau <trondeau@vt.edu> | 2013-03-01 13:01:37 -0500 |
commit | 6121d0b12bcb308586b5888b6c7e82832f692e5c (patch) | |
tree | 5b7dc92b8d6b710ab49433c5c783169775671efc /gnuradio-core/src/lib/runtime/gr_log.h | |
parent | 9c0f2dea1c3dc661d53f182f4c6b82c713f4de44 (diff) |
log: cleaned up naming, added gr_log_get_level function.
Changed the name of the logger in the xml to use a better name.
Diffstat (limited to 'gnuradio-core/src/lib/runtime/gr_log.h')
-rw-r--r-- | gnuradio-core/src/lib/runtime/gr_log.h | 150 |
1 files changed, 107 insertions, 43 deletions
diff --git a/gnuradio-core/src/lib/runtime/gr_log.h b/gnuradio-core/src/lib/runtime/gr_log.h index be01da1c6e..4a0449b203 100644 --- a/gnuradio-core/src/lib/runtime/gr_log.h +++ b/gnuradio-core/src/lib/runtime/gr_log.h @@ -20,12 +20,12 @@ * Boston, MA 02110-1301, USA. */ -/************************************************ -* Copyright 2011 JHU APL +/******************************************************************************* +* Copyright 2011 Johns Hopkins University Applied Physics Lab +* Author: Mark Plett * Description: * The gr_log module wraps the log4cxx library for logging in gnuradio -* -**************************************************/ +*******************************************************************************/ #ifndef INCLUDED_GR_LOG_H #define INCLUDED_GR_LOG_H @@ -51,9 +51,9 @@ #include <log4cxx/xml/domconfigurator.h> #include <log4cxx/propertyconfigurator.h> -using namespace log4cxx; -using namespace log4cxx::xml; -using namespace log4cxx::helpers; +//using namespace log4cxx; +//using namespace log4cxx::xml; +//using namespace log4cxx::helpers; /*! * \brief GR_LOG macros @@ -73,48 +73,56 @@ using namespace log4cxx::helpers; logger_load_config(config) #define GR_LOG_GETLOGGER(logger, name) \ - LoggerPtr logger = gr_log::getLogger(name); + log4cxx::LoggerPtr logger = gr_log::getLogger(name); + +#define GR_SET_LEVEL(name, level){ \ + log4cxx::LoggerPtr logger = log4cxx::Logger::getLogger(name); \ + logger_set_level(logger, level);} #define GR_LOG_SET_LEVEL(logger, level) \ logger_set_level(logger, level); -#define GR_SET_LEVEL(name, level) \ - LoggerPtr logger = Logger::getLogger(name); \ - logger_set_level(logger, level); +#define GR_GET_LEVEL(name, level){ \ + log4cxx::LoggerPtr logger = log4cxx::Logger::getLogger(name); \ + logger_get_level(logger,level);} + +#define GR_LOG_GET_LEVEL(logger, level) \ + logger_get_level(logger,level); + /* Logger name referenced macros */ #define GR_TRACE(name, msg) { \ - LoggerPtr logger = Logger::getLogger(name); \ + log4cxx::LoggerPtr logger = log4cxx::Logger::getLogger(name); \ LOG4CXX_TRACE(logger, msg);} #define GR_DEBUG(name, msg) { \ - LoggerPtr logger = Logger::getLogger(name); \ + log4cxx::LoggerPtr logger = log4cxx::Logger::getLogger(name); \ LOG4CXX_DEBUG(logger, msg);} #define GR_INFO(name, msg) { \ - LoggerPtr logger = Logger::getLogger(name); \ + log4cxx::LoggerPtr logger = log4cxx::Logger::getLogger(name); \ LOG4CXX_INFO(logger, msg);} #define GR_WARN(name, msg) { \ - LoggerPtr logger = Logger::getLogger(name); \ + log4cxx::LoggerPtr logger = log4cxx::Logger::getLogger(name); \ LOG4CXX_WARN(logger, msg);} #define GR_ERROR(name, msg) { \ - LoggerPtr logger = Logger::getLogger(name); \ + log4cxx::LoggerPtr logger = log4cxx::Logger::getLogger(name); \ LOG4CXX_ERROR(logger, msg);} #define GR_FATAL(name, msg) { \ - LoggerPtr logger = Logger::getLogger(name); \ + log4cxx::LoggerPtr logger = log4cxx::Logger::getLogger(name); \ LOG4CXX_FATAL(logger, msg);} #define GR_ERRORIF(name, cond, msg) { \ - LoggerPtr logger = Logger::getLogger(name); \ + log4cxx::LoggerPtr logger = log4cxx::Logger::getLogger(name); \ LOG4CXX_ASSERT(logger, !(cond), msg);} #define GR_ASSERT(name, cond, msg) { \ - LoggerPtr logger = Logger::getLogger(name); \ - LOG4CXX_ASSERT(logger, cond, msg); \ - assert(cond);} + log4cxx::LoggerPtr logger = log4cxx::Logger::getLogger(name); \ + LOG4CXX_ASSERT(logger, (cond), msg); \ + assert((cond));} /* LoggerPtr Referenced Macros */ #define GR_LOG_TRACE(logger, msg) { \ @@ -139,8 +147,8 @@ using namespace log4cxx::helpers; LOG4CXX_ASSERT(logger, !(cond), msg);} #define GR_LOG_ASSERT(logger, cond, msg) { \ - LOG4CXX_ASSERT(logger, cond, msg); \ - assert(cond);} + LOG4CXX_ASSERT(logger, (cond), msg); \ + assert((cond));} /*! @@ -172,7 +180,7 @@ GR_CORE_API void logger_load_config(const std::string &config_filename=""); * \param logger the logger to set the level of. * \param level string to set the level to. */ -GR_CORE_API void logger_set_level(LoggerPtr logger, const std::string &level); +GR_CORE_API void logger_set_level(log4cxx::LoggerPtr logger, const std::string &level); /*! * \brief Set the logger's output level. @@ -192,7 +200,48 @@ GR_CORE_API void logger_set_level(LoggerPtr logger, const std::string &level); * \param logger the logger to set the level of. * \param level new logger level of type Log4cxx::Level */ -void logger_set_level(LoggerPtr logger, log4cxx::LevelPtr level); +void logger_set_level(log4cxx::LoggerPtr logger, log4cxx::LevelPtr level); + + +/*! + * \brief Get the logger's output level. + * + * Gets the level of the logger. This returns a string that + * corresponds to the standard levels and can be (case insensitive): + * + * \li off + * \li all + * \li trace + * \li debug + * \li info + * \li warn + * \li error + * \li fatal + * + * \param logger the logger to get the level of. + * \param level string to get the level into. + */ +GR_CORE_API void logger_get_level(log4cxx::LoggerPtr logger,std::string &level); + +/*! + * \brief Get the logger's output level. + * + * Gets the level of the logger. This returns the actual Log4cxx::Level + * data type, which can be: + * + * \li log4cxx::Level::getOff() + * \li log4cxx::Level::getAll() + * \li log4cxx::Level::getTrace() + * \li log4cxx::Level::getDebug() + * \li log4cxx::Level::getInfo() + * \li log4cxx::Level::getWarn() + * \li log4cxx::Level::getError() + * \li log4cxx::Level::getFatal() + * + * \param logger the logger to get the level of. + */ +void logger_get_level(log4cxx::LoggerPtr logger,log4cxx::LevelPtr level); + /*! * \brief instantiate (configure) logger. @@ -218,23 +267,33 @@ class gr_log { // Load configuration file if(config_filename.find(".xml")!=std::string::npos) { - DOMConfigurator::configureAndWatch(config_filename, watchPeriodSec); + log4cxx::xml::DOMConfigurator::configureAndWatch(config_filename, watchPeriodSec); } else { - PropertyConfigurator::configureAndWatch(config_filename, watchPeriodSec); + log4cxx::PropertyConfigurator::configureAndWatch(config_filename, watchPeriodSec); } }; - static LoggerPtr getLogger(std::string name) + static log4cxx::LoggerPtr getLogger(std::string name) { - LoggerPtr logger = Logger::getLogger(name); - return logger; + if(log4cxx::LogManager::exists(name)) { + log4cxx::LoggerPtr logger = log4cxx::Logger::getLogger(name); + return logger; + } + else { + log4cxx::LoggerPtr logger = log4cxx::Logger::getLogger(name); + logger->setLevel(log4cxx::Level::getOff()); + return logger; + }; }; + // Wrappers for logging macros /*! \brief inline function, wrapper to set the logger level */ void set_level(std::string name,std::string level){GR_SET_LEVEL(name,level);} - // Wrappers for logging macros + /*! \brief inline function, wrapper to get the logger level */ + void get_level(std::string name,std::string &level){GR_GET_LEVEL(name,level);} + /*! \brief inline function, wrapper for LOG4CXX_TRACE for TRACE message */ void trace(std::string name,std::string msg){GR_TRACE(name,msg);}; @@ -259,42 +318,45 @@ class gr_log /*! \brief inline function, wrapper for LOG4CXX_ASSERT for conditional ERROR message */ void gr_assert(std::string name,bool cond,std::string msg){GR_ASSERT(name,cond,msg);}; - + // Wrappers for Logger Pointer referenced functions /*! \brief inline function, wrapper to set the logger level */ - void set_log_level(LoggerPtr logger,std::string level){GR_LOG_SET_LEVEL(logger,level);} + void set_log_level(log4cxx::LoggerPtr logger,std::string level){GR_LOG_SET_LEVEL(logger,level);} + + /*! \brief inline function, wrapper to get the logger level */ + void get_log_level(log4cxx::LoggerPtr logger,std::string &level){GR_LOG_GET_LEVEL(logger,level);} /*! \brief inline function, wrapper for LOG4CXX_TRACE for TRACE message */ - void log_trace(LoggerPtr logger,std::string msg){GR_LOG_TRACE(logger,msg);}; + void log_trace(log4cxx::LoggerPtr logger,std::string msg){GR_LOG_TRACE(logger,msg);}; /*! \brief inline function, wrapper for LOG4CXX_DEBUG for DEBUG message */ - void log_debug(LoggerPtr logger,std::string msg){GR_LOG_DEBUG(logger,msg);}; + void log_debug(log4cxx::LoggerPtr logger,std::string msg){GR_LOG_DEBUG(logger,msg);}; /*! \brief inline function, wrapper for LOG4CXX_INFO for INFO message */ - void log_info(LoggerPtr logger,std::string msg){GR_LOG_INFO(logger,msg);}; + void log_info(log4cxx::LoggerPtr logger,std::string msg){GR_LOG_INFO(logger,msg);}; /*! \brief inline function, wrapper for LOG4CXX_WARN for WARN message */ - void log_warn(LoggerPtr logger,std::string msg){GR_LOG_WARN(logger,msg);}; + void log_warn(log4cxx::LoggerPtr logger,std::string msg){GR_LOG_WARN(logger,msg);}; /*! \brief inline function, wrapper for LOG4CXX_ERROR for ERROR message */ - void log_error(LoggerPtr logger,std::string msg){GR_LOG_ERROR(logger,msg);}; + void log_error(log4cxx::LoggerPtr logger,std::string msg){GR_LOG_ERROR(logger,msg);}; /*! \brief inline function, wrapper for LOG4CXX_FATAL for FATAL message */ - void log_fatal(LoggerPtr logger,std::string msg){GR_LOG_FATAL(logger,msg);}; + void log_fatal(log4cxx::LoggerPtr logger,std::string msg){GR_LOG_FATAL(logger,msg);}; /*! \brief inline function, wrapper for LOG4CXX_ASSERT for conditional ERROR message */ - void log_errorIF(LoggerPtr logger,bool cond,std::string msg){GR_LOG_ERRORIF(logger,cond,msg);}; + void log_errorIF(log4cxx::LoggerPtr logger,bool cond,std::string msg){GR_LOG_ERRORIF(logger,cond,msg);}; /*! \brief inline function, wrapper for LOG4CXX_ASSERT for conditional ERROR message */ - void log_assert(LoggerPtr logger,bool cond,std::string msg){GR_LOG_ASSERT(logger,cond,msg);}; + void log_assert(log4cxx::LoggerPtr logger,bool cond,std::string msg){GR_LOG_ASSERT(logger,cond,msg);}; }; //If ENABLE_GR_LOG not set then clear all logging macros #else - #define GR_CONFIG_LOGGER(config) #define GR_LOG_GETLOGGER(logger, name) -#define GR_LOG_SET_LEVEL(logger, level) +#define GR_SET_LEVEL(logger, level) +#define GR_GET_LEVEL(logger, level) #define GR_TRACE(name, msg) #define GR_DEBUG(name, msg) #define GR_INFO(name, msg) @@ -303,6 +365,8 @@ class gr_log #define GR_FATAL(name, msg) #define GR_ERRORIF(name, cond, msg) #define GR_ASSERT(name, cond, msg) +#define GR_LOG_SET_LEVEL(logger, level) +#define GR_LOG_GET_LEVEL(logger, level) #define GR_LOG_TRACE(logger, msg) #define GR_LOG_DEBUG(logger, msg) #define GR_LOG_INFO(logger, msg) |