Index: source/ariba/utility/logging/Logging.h
===================================================================
--- source/ariba/utility/logging/Logging.h	(revision 7748)
+++ source/ariba/utility/logging/Logging.h	(revision 9737)
@@ -45,10 +45,9 @@
 
 #ifdef HAVE_LOG4CXX_LOGGER_H
-#include <log4cxx/logger.h>
-#include <log4cxx/basicconfigurator.h>
+	#include <log4cxx/logger.h>
+	#include <log4cxx/basicconfigurator.h>
 #endif // HAVE_LOG4CXX_LOGGER_H
 
 #ifdef LOGCOLORS
-
   #define colorDefault { std::cout << "\033[0m";  } /*reset*/
   #define colorDebug   { std::cout << "\033[0;33m"; } /*cyan*/
@@ -58,5 +57,4 @@
 
 #else
-
   #define colorDefault { }
   #define colorDebug   { }
@@ -64,5 +62,4 @@
   #define colorWarn    { }
   #define colorError   { }
-
 #endif // ENABLE_LOGCOLORS
 
@@ -83,18 +80,39 @@
   #define logging_fatal(x)  {colorError; LOG4CXX_FATAL(logger,x); colorDefault; exit(-1); }
 
+  #define logging_rootlevel_debug()	  {log4cxx::Logger::getRootLogger()->setLevel(log4cxx::Level::getDebug()); }
+  #define logging_rootlevel_info()	  {log4cxx::Logger::getRootLogger()->setLevel(log4cxx::Level::getInfo() ); }
+  #define logging_rootlevel_warn()	  {log4cxx::Logger::getRootLogger()->setLevel(log4cxx::Level::getWarn() ); }
+  #define logging_rootlevel_error()	  {log4cxx::Logger::getRootLogger()->setLevel(log4cxx::Level::getError()); }
+
+  #define logging_classlevel_debug(x) {log4cxx::LoggerPtr logger(log4cxx::Logger::getLogger(x)); if(logger != NULL) logger->setLevel(log4cxx::Level::getDebug()); }
+  #define logging_classlevel_info(x)  {log4cxx::LoggerPtr logger(log4cxx::Logger::getLogger(x)); if(logger != NULL) logger->setLevel(log4cxx::Level::getInfo());  }
+  #define logging_classlevel_warn(x)  {log4cxx::LoggerPtr logger(log4cxx::Logger::getLogger(x)); if(logger != NULL) logger->setLevel(log4cxx::Level::getWarn());  }
+  #define logging_classlevel_error(x) {log4cxx::LoggerPtr logger(log4cxx::Logger::getLogger(x)); if(logger != NULL) logger->setLevel(log4cxx::Level::getError()); }
+
 #else // HAVE_LOG4CXX_LOGGER_H
 
   #define use_logging_h(x)
-
   #define use_logging_cpp(x)
 
   #define logging_stdout(x) std::cout << x << std::endl;
 
-  #define logging_trace(x)
-  #define logging_debug(x)  {colorDebug; logging_stdout(x); colorDefault;           }
-  #define logging_info(x)   {colorInfo;  logging_stdout(x);  colorDefault;           }
-  #define logging_warn(x)   {colorWarn;  logging_stdout(x);  colorDefault;           }
-  #define logging_error(x)  {colorError; logging_stdout(x); colorDefault;           }
-  #define logging_fatal(x)  {colorError; logging_stdout(x); colorDefault; exit(-1); }
+  static int __loglevel__ = 2; //default is info
+
+  #define logging_trace(x)  {            logging_stdout(x);                         }
+  #define logging_debug(x)  {if(__loglevel__ <= 1){ colorDebug; logging_stdout(x); colorDefault; }}
+  #define logging_info(x)   {if(__loglevel__ <= 2){ colorInfo;  logging_stdout(x); colorDefault; }}
+  #define logging_warn(x)   {if(__loglevel__ <= 3){ colorWarn;  logging_stdout(x); colorDefault; }}
+  #define logging_error(x)  {                     return; colorError; logging_stdout(x); colorDefault;           }
+  #define logging_fatal(x)  {                     return; colorError; logging_stdout(x); colorDefault; exit(-1); }
+
+  #define logging_rootlevel_debug()	  {__loglevel__ = 1;}
+  #define logging_rootlevel_info()	  {__loglevel__ = 2;}
+  #define logging_rootlevel_warn()	  {__loglevel__ = 3;}
+  #define logging_rootlevel_error()	  {__loglevel__ = 4;}
+
+  #define logging_classlevel_debug(x) {std::cout << "individual class logging only available with log4cxx library" << std::endl;}
+  #define logging_classlevel_info(x)  {std::cout << "individual class logging only available with log4cxx library" << std::endl;}
+  #define logging_classlevel_warn(x)  {std::cout << "individual class logging only available with log4cxx library" << std::endl;}
+  #define logging_classlevel_error(x) {std::cout << "individual class logging only available with log4cxx library" << std::endl;}
 
 #endif // HAVE_LOG4CXX_LOGGER_H
