00001
00002
00003
00004
00005 #include <iostream>
00006
00007 #include <stdair/stdair_exceptions.hpp>
00008 #include <stdair/service/Logger.hpp>
00009
00010 namespace stdair {
00011
00012
00013 Logger::Logger()
00014 : _level (LOG::DEBUG), _logStream (&std::cout),
00015 _hasBeenInitialised (false) {
00016 }
00017
00018
00019 Logger::Logger (const Logger&)
00020 : _level (LOG::DEBUG), _logStream (&std::cout),
00021 _hasBeenInitialised (false) {
00022 assert (false);
00023 }
00024
00025
00026 Logger::~Logger() {
00027
00028 }
00029
00030
00031 void Logger::init (const BasLogParams& iLogParams) {
00032
00033
00034 Logger& lInstance = instance();
00035 const bool hasBeenInitialised = lInstance.getStatus();
00036 if (hasBeenInitialised == true
00037 && iLogParams.getForcedInitialisationFlag() == false) {
00038 STDAIR_LOG_ERROR ("Error: the log stream has already been initialised");
00039 assert (false);
00040 }
00041
00042 lInstance.setLevel (iLogParams._logLevel);
00043 lInstance.setStream (iLogParams._logStream);
00044 lInstance.setStatus (true);
00045 }
00046
00047
00048 Logger& Logger::instance() {
00049 static Logger _instance;
00050 return _instance;
00051 }
00052
00053
00054 BasLogParams Logger::getLogParams() {
00055 std::ostream* oStream_ptr = instance()._logStream;
00056 assert (oStream_ptr != NULL);
00057 return BasLogParams (instance()._level, *oStream_ptr);
00058 }
00059
00060
00061 void Logger::clean() {
00062 Logger& lInstance = instance();
00063 lInstance.setStatus (false);
00064 }
00065
00066 }