summaryrefslogtreecommitdiff
path: root/gnuradio-core
diff options
context:
space:
mode:
authorTom Rondeau <trondeau@vt.edu>2012-09-06 12:37:22 -0400
committerTom Rondeau <trondeau@vt.edu>2013-03-01 13:01:37 -0500
commit6121d0b12bcb308586b5888b6c7e82832f692e5c (patch)
tree5b7dc92b8d6b710ab49433c5c783169775671efc /gnuradio-core
parent9c0f2dea1c3dc661d53f182f4c6b82c713f4de44 (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.xml2
-rw-r--r--gnuradio-core/src/lib/runtime/gr_log.cc40
-rw-r--r--gnuradio-core/src/lib/runtime/gr_log.h150
-rw-r--r--gnuradio-core/src/lib/runtime/gr_log.i38
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 */