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 | |
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')
-rw-r--r-- | gnuradio-core/gr_log_default.xml | 2 | ||||
-rw-r--r-- | gnuradio-core/src/lib/runtime/gr_log.cc | 40 | ||||
-rw-r--r-- | gnuradio-core/src/lib/runtime/gr_log.h | 150 | ||||
-rw-r--r-- | gnuradio-core/src/lib/runtime/gr_log.i | 38 |
4 files changed, 158 insertions, 72 deletions
diff --git a/gnuradio-core/gr_log_default.xml b/gnuradio-core/gr_log_default.xml index be721bb021..4260c0e12f 100644 --- a/gnuradio-core/gr_log_default.xml +++ b/gnuradio-core/gr_log_default.xml @@ -38,7 +38,7 @@ <appender name="errLogRootConsoleAppender" class="org.apache.log4j.ConsoleAppender"> <param name="Target" value="System.out"/> <layout class="org.apache.log4j.PatternLayout"> - <param name="ConversionPattern" value="errLoggerRoot :%-5p %c{1} - %m%n"/> + <param name="ConversionPattern" value="grlog :%-5p %c{1} - %m%n"/> </layout> </appender> diff --git a/gnuradio-core/src/lib/runtime/gr_log.cc b/gnuradio-core/src/lib/runtime/gr_log.cc index cbf196cf0b..371878d7f4 100644 --- a/gnuradio-core/src/lib/runtime/gr_log.cc +++ b/gnuradio-core/src/lib/runtime/gr_log.cc @@ -26,12 +26,12 @@ * file included in your .cc file. */ -/************************************************ -* Johns Hopkins University Applied Physics Lab -* Author: Mark Plett (Adapted from gr_how_t0_write_a_block_3.2 +/******************************************************************************* +* Copyright 2011 Johns Hopkins University Applied Physics Lab +* Author: Mark Plett * Description: -* This block is a pass through to exercise the logging module gr.error_logger. -**************************************************/ +* The gr_log module wraps the log4cxx library for logging in gnuradio. +*******************************************************************************/ #ifdef HAVE_CONFIG_H #include "config.h" @@ -47,18 +47,18 @@ void logger_load_config(const std::string &config_filename) { if(config_filename.size() == 0) { - BasicConfigurator::configure(); + log4cxx::BasicConfigurator::configure(); } else if(config_filename.find(".xml") != std::string::npos) { - DOMConfigurator::configure(config_filename); + log4cxx::xml::DOMConfigurator::configure(config_filename); } else { - PropertyConfigurator::configure(config_filename); + log4cxx::PropertyConfigurator::configure(config_filename); } } void -logger_set_level(LoggerPtr logger, const std::string &level) +logger_set_level(log4cxx::LoggerPtr logger, const std::string &level) { std::string nocase = level; std::transform(level.begin(), level.end(), nocase.begin(), ::tolower); @@ -84,9 +84,29 @@ logger_set_level(LoggerPtr logger, const std::string &level) } void -logger_set_level(LoggerPtr logger, log4cxx::LevelPtr level) +logger_set_level(log4cxx::LoggerPtr logger, log4cxx::LevelPtr level) { logger->setLevel(level); } +void +logger_get_level(log4cxx::LoggerPtr logger,std::string &level) +{ + log4cxx::LevelPtr levelPtr = logger->getLevel(); + if(levelPtr == log4cxx::Level::getOff()) level = "off"; + if(levelPtr == log4cxx::Level::getAll()) level = "all"; + if(levelPtr == log4cxx::Level::getTrace()) level = "trace"; + if(levelPtr == log4cxx::Level::getDebug()) level = "debug"; + if(levelPtr == log4cxx::Level::getInfo()) level = "info"; + if(levelPtr == log4cxx::Level::getWarn()) level = "warn"; + if(levelPtr == log4cxx::Level::getError()) level = "error"; + if(levelPtr == log4cxx::Level::getFatal()) level = "fatal"; +}; + +void +logger_get_level(log4cxx::LoggerPtr logger,log4cxx::LevelPtr level) +{ + level = logger->getLevel(); +} + #endif /* ENABLE_GR_LOG */ 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) diff --git a/gnuradio-core/src/lib/runtime/gr_log.i b/gnuradio-core/src/lib/runtime/gr_log.i index b0059e05f4..5175ef95f7 100644 --- a/gnuradio-core/src/lib/runtime/gr_log.i +++ b/gnuradio-core/src/lib/runtime/gr_log.i @@ -20,12 +20,11 @@ */ /******************************************************************************* -* -* Copyright 2011 JHU APL -* -* SWIG interface generator file for gr_log module. gr_log wraps log4cxx logging -* for gnuradio. -* +* Copyright 2011 Johns Hopkins University Applied Physics Lab +* Author: Mark Plett +* Description: +* SWIG interface generator file for gr_log module. gr_log wraps log4cxx logging +* for gnuradio. *******************************************************************************/ %feature("autodoc", "1"); // generate python docstrings @@ -49,13 +48,14 @@ #include <log4cxx/logmanager.h> %} +namespace log4cxx{ class LoggerPtr { public: ~LoggerPtr(); }; - +}; void logger_load_config(const std::string &config_filename); -void logger_set_level(LoggerPtr logger, const std::string &level); +void logger_set_level(log4cxx::LoggerPtr logger, const std::string &level); %rename(log) gr_log; @@ -67,6 +67,7 @@ public: //gr_log(std::string config_filename); gr_log(std::string config_filename,int watchPeriodSec); void set_level(std::string name,std::string level); + void get_level(std::string name,std::string &level); void trace(std::string name,std::string msg); void debug(std::string name,std::string msg); void info(std::string name,std::string msg); @@ -76,17 +77,18 @@ public: void errorIF(std::string name,bool cond,std::string msg); void gr_assert(std::string name,bool cond,std::string msg); - static LoggerPtr getLogger(std::string name); + static log4cxx::LoggerPtr getLogger(std::string name); - void set_log_level(LoggerPtr logger,std::string level); - void log_trace(LoggerPtr logger,std::string msg); - void log_debug(LoggerPtr logger,std::string msg); - void log_info(LoggerPtr logger,std::string msg); - void log_warn(LoggerPtr logger,std::string msg); - void log_error(LoggerPtr logger,std::string msg); - void log_fatal(LoggerPtr logger,std::string msg); - void log_errorIF(LoggerPtr logger,bool cond,std::string msg); - void log_assert(LoggerPtr logger,bool cond,std::string msg); + void set_log_level(log4cxx::LoggerPtr logger,std::string level); + void get_log_level(log4cxx::LoggerPtr logger,std::string &level); + void log_trace(log4cxx::LoggerPtr logger,std::string msg); + void log_debug(log4cxx::LoggerPtr logger,std::string msg); + void log_info(log4cxx::LoggerPtr logger,std::string msg); + void log_warn(log4cxx::LoggerPtr logger,std::string msg); + void log_error(log4cxx::LoggerPtr logger,std::string msg); + void log_fatal(log4cxx::LoggerPtr logger,std::string msg); + void log_errorIF(log4cxx::LoggerPtr logger,bool cond,std::string msg); + void log_assert(log4cxx::LoggerPtr logger,bool cond,std::string msg); }; #endif /* ENABLE_GR_LOG */ |