Go to the documentation of this file.00001
00002
00003
00004
00005 #include <assert.h>
00006
00007 #include <iostream>
00008
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 }