Jpp 21.0.0-rc.3
the software that should make you happy
Loading...
Searching...
No Matches
JLOGGER::JMessageLoggerThreadSafe Class Reference

Thread-safe message logger. More...

#include <JMessageLogger.hh>

Inheritance diagram for JLOGGER::JMessageLoggerThreadSafe:
JLOGGER::JMessageLogger JLOGGER::JLogger

Public Types

enum  JLevel_t {
  OFF = -1 , ERROR = 0 , STATUS = 0 , WARNING = 1 ,
  NOTICE = 2 , DEBUG = 3
}
 
typedef std::string JMessage_t
 

Public Member Functions

 JMessageLoggerThreadSafe ()
 Default constructor.
 
 JMessageLoggerThreadSafe (JLogger *__logger, const std::string &__name, const int __level=ERROR)
 Constructor.
 
virtual void typeout (const std::string &tag, const std::string &message) override
 Report message.
 
void reset (JLogger *__logger=NULL)
 Reset logger.
 
JLevel_t getLevel ()
 Get debug level.
 
void setLevel (const int __level)
 Set debug level.
 
void setLevel (const JLevel_t __level)
 Set debug level.
 
 operator bool () const
 Check validity of logger object.
 
void debug (const JMessage_t &message)
 
void warning (const JMessage_t &message)
 
void error (const JMessage_t &message)
 
void notice (const JMessage_t &message)
 
void status (const JMessage_t &message)
 
JSYNCHRONIZATION::JMutexmutex ()
 Provides internal lock object.
 

Protected Member Functions

void typeout (const JLevel_t __level, const char *__prefix, const JMessage_t &__message)
 Report message.
 

Protected Attributes

std::shared_ptr< JLoggerlogger
 
std::string host
 
std::string name
 
JLevel_t level
 

Private Attributes

JSYNCHRONIZATION::JMutex m_mutex
 

Detailed Description

Thread-safe message logger.

This class aims to provide a thread-safe alternative to the JMessageLogger class. Indeed it can transparently replace a JMessageLogger object to be used in multi-thread environment.

Definition at line 239 of file JMessageLogger.hh.

Member Typedef Documentation

◆ JMessage_t

std::string JLOGGER::JMessageLogger::JMessage_t
inherited

Definition at line 66 of file JMessageLogger.hh.

Member Enumeration Documentation

◆ JLevel_t

Enumerator
OFF 

No logging of messages.

ERROR 

Error; always logged.

STATUS 

Status; always logged.

WARNING 

Warning.

NOTICE 

Notice.

DEBUG 

Debug.

Definition at line 57 of file JMessageLogger.hh.

57 {
58 OFF = -1, //!< No logging of messages
59 ERROR = 0, //!< Error; always logged
60 STATUS = 0, //!< Status; always logged
61 WARNING = 1, //!< Warning
62 NOTICE = 2, //!< Notice
63 DEBUG = 3 //!< Debug
64 };
@ STATUS
Status; always logged.
@ ERROR
Error; always logged.
@ OFF
No logging of messages.

Constructor & Destructor Documentation

◆ JMessageLoggerThreadSafe() [1/2]

JLOGGER::JMessageLoggerThreadSafe::JMessageLoggerThreadSafe ( )
inline

Default constructor.

Definition at line 247 of file JMessageLogger.hh.

247 :
249 {}
JMessageLogger()
Default constructor.

◆ JMessageLoggerThreadSafe() [2/2]

JLOGGER::JMessageLoggerThreadSafe::JMessageLoggerThreadSafe ( JLogger * __logger,
const std::string & __name,
const int __level = ERROR )
inline

Constructor.

Parameters
__loggerpointer to logger
__namename
__leveldebug level

Definition at line 259 of file JMessageLogger.hh.

261 :
262 JMessageLogger(__logger, __name, __level)
263 {}

Member Function Documentation

◆ typeout() [1/2]

virtual void JLOGGER::JMessageLoggerThreadSafe::typeout ( const std::string & tag,
const std::string & message )
inlineoverridevirtual

Report message.

Parameters
tagtag
messagemessage

Reimplemented from JLOGGER::JMessageLogger.

Definition at line 272 of file JMessageLogger.hh.

274 {
276 logger->typeout(tag, message);
277 }
std::shared_ptr< JLogger > logger

◆ reset()

void JLOGGER::JMessageLogger::reset ( JLogger * __logger = NULL)
inlineinherited

Reset logger.

Parameters
__loggerpointer to logger

Definition at line 105 of file JMessageLogger.hh.

106 {
107 logger.reset(__logger);
108 }

◆ getLevel()

JLevel_t JLOGGER::JMessageLogger::getLevel ( )
inlineinherited

Get debug level.

Returns
debug level

Definition at line 116 of file JMessageLogger.hh.

117 {
118 return level;
119 }

◆ setLevel() [1/2]

void JLOGGER::JMessageLogger::setLevel ( const int __level)
inlineinherited

Set debug level.

Parameters
__leveldebug level

Definition at line 127 of file JMessageLogger.hh.

128 {
129 if (__level < 0)
130 level = OFF;
131 else if (__level == 0)
132 level = ERROR;
133 else if (__level == 1)
134 level = WARNING;
135 else if (__level == 2)
136 level = NOTICE;
137 else
138 level = DEBUG;
139 }

◆ setLevel() [2/2]

void JLOGGER::JMessageLogger::setLevel ( const JLevel_t __level)
inlineinherited

Set debug level.

Parameters
__leveldebug level

Definition at line 147 of file JMessageLogger.hh.

148 {
149 level = __level;
150 }

◆ operator bool()

JLOGGER::JMessageLogger::operator bool ( ) const
inlineinherited

Check validity of logger object.

This operator returns the state of the logger object. The object is valid if the logger object is ready for use, else the object is in-valid. In case the object is in-valid, no messages will be reported.

Returns
true if logger ready for use; else false

Definition at line 162 of file JMessageLogger.hh.

163 {
164 return (bool) logger;
165 }

◆ typeout() [2/2]

void JLOGGER::JMessageLogger::typeout ( const JLevel_t __level,
const char * __prefix,
const JMessage_t & __message )
inlineprotectedinherited

Report message.

Parameters
__levellevel
__prefixprefix
__messagemessage

Definition at line 199 of file JMessageLogger.hh.

202 {
203 if (logger && __level <= level && !__message.empty()) {
204
205 JMessage_t message;
206
207 message += getDateAndTime();
208
209 message += " ";
210 message += host;
211
212 message += " ";
213 message += name;
214
215 message += " ";
216 message += __prefix;
217
218 message += " ";
219 message += __message;
220
221 typeout(MESSAGE_TAG, message);
222 }
223 }
virtual void typeout(const std::string &tag, const std::string &message) override
Report message.
static const std::string MESSAGE_TAG
Message logging tag.

◆ debug()

void JLOGGER::JMessageLogger::debug ( const JMessage_t & message)
inlineinherited

Definition at line 183 of file JMessageLogger.hh.

183{ TYPEOUT(DEBUG, message); }
#define TYPEOUT(LEVEL, MESSAGE)

◆ warning()

void JLOGGER::JMessageLogger::warning ( const JMessage_t & message)
inlineinherited

Definition at line 184 of file JMessageLogger.hh.

184{ TYPEOUT(WARNING, message); }

◆ error()

void JLOGGER::JMessageLogger::error ( const JMessage_t & message)
inlineinherited

Definition at line 185 of file JMessageLogger.hh.

185{ TYPEOUT(ERROR, message); }

◆ notice()

void JLOGGER::JMessageLogger::notice ( const JMessage_t & message)
inlineinherited

Definition at line 186 of file JMessageLogger.hh.

186{ TYPEOUT(NOTICE, message); }

◆ status()

void JLOGGER::JMessageLogger::status ( const JMessage_t & message)
inlineinherited

Definition at line 187 of file JMessageLogger.hh.

187{ TYPEOUT(STATUS, message); }

◆ mutex()

JSYNCHRONIZATION::JMutex & JLOGGER::JLogger::mutex ( )
inlineinherited

Provides internal lock object.

Returns
reference to the internal mutex object.

Definition at line 44 of file JLogger.hh.

45 {
46 return m_mutex;
47 }
JSYNCHRONIZATION::JMutex m_mutex
Definition JLogger.hh:51

Member Data Documentation

◆ logger

std::shared_ptr<JLogger> JLOGGER::JMessageLogger::logger
protectedinherited

Definition at line 226 of file JMessageLogger.hh.

◆ host

std::string JLOGGER::JMessageLogger::host
protectedinherited

Definition at line 227 of file JMessageLogger.hh.

◆ name

std::string JLOGGER::JMessageLogger::name
protectedinherited

Definition at line 228 of file JMessageLogger.hh.

◆ level

JLevel_t JLOGGER::JMessageLogger::level
protectedinherited

Definition at line 229 of file JMessageLogger.hh.

◆ m_mutex

JSYNCHRONIZATION::JMutex JLOGGER::JLogger::m_mutex
privateinherited

Definition at line 51 of file JLogger.hh.


The documentation for this class was generated from the following file: