RMOL Logo Get Revenue Management Optimisation Library at SourceForge.net. Fast, secure and Free Open Source software downloads

Logger.cpp

Go to the documentation of this file.
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 }
SourceForge Logo

Generated on Tue Apr 14 17:57:51 2009 for RMOL by Doxygen 1.5.8