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