OpenTREP Logo  0.6.0
C++ Open Travel Request Parsing Library
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
Logger.cpp
Go to the documentation of this file.
1 // //////////////////////////////////////////////////////////////////////
2 // Import section
3 // //////////////////////////////////////////////////////////////////////
4 // C
5 #include <assert.h>
6 // STL
7 #include <iostream>
8 // Opentrep Logger
11 
12 namespace OPENTREP {
13 
14  Logger* Logger::_instance = NULL;
15 
16  // //////////////////////////////////////////////////////////////////////
17  Logger::Logger () : _logStream (&std::cout) {
18  assert (false);
19  }
20 
21  // //////////////////////////////////////////////////////////////////////
22  Logger::Logger (const Logger&) : _logStream (&std::cout) {
23  assert (false);
24  }
25 
26  // //////////////////////////////////////////////////////////////////////
27  Logger::Logger (const LOG::EN_LogLevel iLevel, std::ostream& ioLogStream)
28  : _level (iLevel), _logStream (&ioLogStream) {
29  }
30 
31  // //////////////////////////////////////////////////////////////////////
32  Logger::~Logger () {
33  _logStream = NULL;
34  }
35 
36  // //////////////////////////////////////////////////////////////////////
37  LOG::EN_LogLevel Logger::getLogLevel() {
38  return _level;
39  }
40 
41  // //////////////////////////////////////////////////////////////////////
42  std::ostream& Logger::getLogStream() {
43  assert (_logStream != NULL);
44  return *_logStream;
45  }
46 
47  // //////////////////////////////////////////////////////////////////////
48  void Logger::setLogParameters (const LOG::EN_LogLevel iLogLevel,
49  std::ostream& ioLogStream) {
50  _level = iLogLevel;
51  _logStream = &ioLogStream;
52  }
53 
54  // //////////////////////////////////////////////////////////////////////
55  Logger& Logger::instance() {
56  if (_instance == NULL) {
57  _instance = new Logger (LOG::DEBUG, std::cout);
58 
59  assert (_instance != NULL);
60 
61  FacSupervisor::instance().registerLoggerService (_instance);
62  }
63  return *_instance;
64  }
65 
66 }