00001 // ////////////////////////////////////////////////////////////////////// 00002 // Import section 00003 // ////////////////////////////////////////////////////////////////////// 00004 // C 00005 #include <assert.h> 00006 // Rmol Logger 00007 #include <rmol/factory/FacSupervisor.hpp> 00008 #include <rmol/service/Logger.hpp> 00009 00010 namespace RMOL { 00011 00012 Logger* Logger::_instance = NULL; 00013 00014 // ////////////////////////////////////////////////////////////////////// 00015 Logger::Logger () : _logStream (&std::cout) { 00016 assert (false); 00017 } 00018 00019 // ////////////////////////////////////////////////////////////////////// 00020 Logger::Logger (const Logger&) : _logStream (&std::cout) { 00021 assert (false); 00022 } 00023 00024 // ////////////////////////////////////////////////////////////////////// 00025 Logger::Logger (const LOG::EN_LogLevel iLevel, std::ostream& ioLogStream) 00026 : _level (iLevel), _logStream (&ioLogStream) { 00027 } 00028 00029 // ////////////////////////////////////////////////////////////////////// 00030 Logger::~Logger () { 00031 _logStream = NULL; 00032 } 00033 00034 // ////////////////////////////////////////////////////////////////////// 00035 LOG::EN_LogLevel Logger::getLogLevel() { 00036 return _level; 00037 } 00038 00039 // ////////////////////////////////////////////////////////////////////// 00040 std::ostream& Logger::getLogStream() { 00041 assert (_logStream != NULL); 00042 return *_logStream; 00043 } 00044 00045 // ////////////////////////////////////////////////////////////////////// 00046 void Logger::setLogParameters (const LOG::EN_LogLevel iLogLevel, 00047 std::ostream& ioLogStream) { 00048 _level = iLogLevel; 00049 _logStream = &ioLogStream; 00050 } 00051 00052 // ////////////////////////////////////////////////////////////////////// 00053 Logger& Logger::instance() { 00054 if (_instance == NULL) { 00055 _instance = new Logger (LOG::DEBUG, std::cout); 00056 00057 assert (_instance != NULL); 00058 00059 FacSupervisor::instance().registerLoggerService (_instance); 00060 } 00061 return *_instance; 00062 } 00063 00064 }
Generated on Tue Apr 14 17:57:51 2009 for RMOL by Doxygen 1.5.8