1.00.26
C++ Standard Airline IT Object Library
Toggle main menu visibility
Loading...
Searching...
No Matches
Logger.hpp
Go to the documentation of this file.
1
#ifndef __STDAIR_SVC_LOGGER_HPP
2
#define __STDAIR_SVC_LOGGER_HPP
3
4
// //////////////////////////////////////////////////////////////////////
5
// Import section
6
// //////////////////////////////////////////////////////////////////////
7
// STL
8
#include <cassert>
9
#include <sstream>
10
#include <string>
11
// StdAir
12
#include <
stdair/stdair_log.hpp
>
13
#include <
stdair/basic/BasLogParams.hpp
>
14
15
// /////////////// LOG MACROS /////////////////
16
#define STDAIR_LOG_CORE(iLevel, iToBeLogged) \
17
{ std::ostringstream ostr; ostr << iToBeLogged; \
18
stdair::Logger::instance().log (iLevel, __LINE__, __FILE__, ostr.str()); }
19
20
#define STDAIR_LOG_CRITICAL(iToBeLogged) \
21
STDAIR_LOG_CORE (stdair::LOG::CRITICAL, iToBeLogged)
22
23
#define STDAIR_LOG_ERROR(iToBeLogged) \
24
STDAIR_LOG_CORE (stdair::LOG::ERROR, iToBeLogged)
25
26
#define STDAIR_LOG_NOTIFICATION(iToBeLogged) \
27
STDAIR_LOG_CORE (stdair::LOG::NOTIFICATION, iToBeLogged)
28
29
#define STDAIR_LOG_WARNING(iToBeLogged) \
30
STDAIR_LOG_CORE (stdair::LOG::WARNING, iToBeLogged)
31
32
#define STDAIR_LOG_DEBUG(iToBeLogged) \
33
STDAIR_LOG_CORE (stdair::LOG::DEBUG, iToBeLogged)
34
35
#define STDAIR_LOG_VERBOSE(iToBeLogged) \
36
STDAIR_LOG_CORE (stdair::LOG::VERBOSE, iToBeLogged)
37
// /////////// (END OF) LOG MACROS /////////////
38
39
40
namespace
stdair
{
41
48
class
Logger {
50
friend
class
FacSupervisor
;
51
friend
class
STDAIR_Service
;
52
53
public
:
54
58
template
<
typename
T>
59
void
log
(
const
LOG::EN_LogLevel
iLevel,
const
int
iLineNumber,
60
const
std::string& iFileName,
const
T& iToBeLogged) {
61
assert (_logStream != NULL);
62
if
(iLevel <= _level) {
63
*_logStream <<
"["
<<
LOG::_logLevels
[iLevel] <<
"]"
<< iFileName <<
":"
64
<< iLineNumber <<
": "
<< iToBeLogged << std::endl;
65
}
66
}
67
71
static
Logger
&
instance
();
72
73
74
private
:
75
// /////////////////// Initialisation and finalisation ////////////////
79
bool
getStatus()
const
{
80
return
_hasBeenInitialised;
81
}
82
86
void
setLevel (
const
LOG::EN_LogLevel
& iLevel) {
87
_level = iLevel;
88
}
89
93
void
setStream (std::ostream& ioStream) {
94
_logStream = &ioStream;
95
}
96
100
void
setStatus (
const
bool
iStatus) {
101
_hasBeenInitialised = iStatus;
102
}
103
108
Logger();
112
Logger (
const
Logger&);
116
~Logger();
117
123
static
void
init (
const
BasLogParams&);
124
128
static
BasLogParams getLogParams();
129
133
static
void
clean();
134
135
136
private
:
137
// /////////////////// Attributes ////////////////
141
LOG::EN_LogLevel
_level;
142
146
std::ostream* _logStream;
147
151
bool
_hasBeenInitialised;
152
};
153
154
}
155
#endif
// __STDAIR_SVC_LOGGER_HPP
156
BasLogParams.hpp
stdair_log.hpp
stdair
Handle on the StdAir library context.
Definition
BasChronometer.cpp:9
stdair::LOG::EN_LogLevel
EN_LogLevel
Definition
stdair_log.hpp:18
stdair::LOG::_logLevels
static const std::string _logLevels[LAST_VALUE]
Definition
stdair_log.hpp:28
stdair::Logger
Definition
Logger.hpp:48
stdair::Logger::STDAIR_Service
friend class STDAIR_Service
Definition
Logger.hpp:51
stdair::Logger::instance
static Logger & instance()
Definition
Logger.cpp:48
stdair::Logger::FacSupervisor
friend class FacSupervisor
Friend classes.
Definition
Logger.hpp:50
stdair::Logger::log
void log(const LOG::EN_LogLevel iLevel, const int iLineNumber, const std::string &iFileName, const T &iToBeLogged)
Definition
Logger.hpp:59
Generated for StdAir by
1.17.0