Jpp
Public Types | Public Member Functions | Protected Member Functions | Protected Attributes | Private Attributes | List of all members
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. More...
 
 JMessageLoggerThreadSafe (JLogger *__logger, const std::string &__name, const int __level=ERROR)
 Constructor. More...
 
virtual void typeout (const std::string &tag, const std::string &message)
 Report message. More...
 
void reset (JLogger *__logger=NULL)
 Reset logger. More...
 
JLevel_t getLevel ()
 Get debug level. More...
 
void setLevel (const int __level)
 Set debug level. More...
 
void setLevel (const JLevel_t __level)
 Set debug level. More...
 
bool is_valid () const
 Check validity of logger object. More...
 
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. More...
 

Protected Member Functions

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

Protected Attributes

JSharedPointer< 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 238 of file JMessageLogger.hh.

Member Typedef Documentation

◆ JMessage_t

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

Definition at line 67 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 58 of file JMessageLogger.hh.

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

Constructor & Destructor Documentation

◆ JMessageLoggerThreadSafe() [1/2]

JLOGGER::JMessageLoggerThreadSafe::JMessageLoggerThreadSafe ( )
inline

Default constructor.

Definition at line 246 of file JMessageLogger.hh.

246  :
248  {}

◆ 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 258 of file JMessageLogger.hh.

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

Member Function Documentation

◆ typeout() [1/2]

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

Report message.

Parameters
tagtag
messagemessage

Reimplemented from JLOGGER::JMessageLogger.

Definition at line 271 of file JMessageLogger.hh.

273  {
275  logger->typeout(tag, message);
276  }

◆ reset()

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

Reset logger.

Parameters
__loggerpointer to logger

Definition at line 106 of file JMessageLogger.hh.

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

◆ getLevel()

JLevel_t JLOGGER::JMessageLogger::getLevel ( )
inlineinherited

Get debug level.

Returns
debug level

Definition at line 117 of file JMessageLogger.hh.

118  {
119  return level;
120  }

◆ setLevel() [1/2]

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

Set debug level.

Parameters
__leveldebug level

Definition at line 128 of file JMessageLogger.hh.

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

◆ setLevel() [2/2]

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

Set debug level.

Parameters
__leveldebug level

Definition at line 146 of file JMessageLogger.hh.

147  {
148  level = __level;
149  }

◆ is_valid()

bool JLOGGER::JMessageLogger::is_valid ( ) 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 161 of file JMessageLogger.hh.

162  {
163  return logger.is_valid();
164  }

◆ 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 198 of file JMessageLogger.hh.

201  {
202  if (is_valid() && __level <= level && !__message.empty()) {
203 
204  JMessage_t message;
205 
206  message += getDateAndTime();
207 
208  message += " ";
209  message += host;
210 
211  message += " ";
212  message += name;
213 
214  message += " ";
215  message += __prefix;
216 
217  message += " ";
218  message += __message;
219 
220  typeout(MESSAGE_TAG, message);
221  }
222  }

◆ debug()

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

Definition at line 182 of file JMessageLogger.hh.

182 { TYPEOUT(DEBUG, message); }

◆ warning()

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

Definition at line 183 of file JMessageLogger.hh.

183 { TYPEOUT(WARNING, message); }

◆ error()

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

Definition at line 184 of file JMessageLogger.hh.

184 { TYPEOUT(ERROR, message); }

◆ notice()

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

Definition at line 185 of file JMessageLogger.hh.

185 { TYPEOUT(NOTICE, message); }

◆ status()

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

Definition at line 186 of file JMessageLogger.hh.

186 { 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  }

Member Data Documentation

◆ logger

JSharedPointer<JLogger> JLOGGER::JMessageLogger::logger
protectedinherited

Definition at line 225 of file JMessageLogger.hh.

◆ host

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

Definition at line 226 of file JMessageLogger.hh.

◆ name

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

Definition at line 227 of file JMessageLogger.hh.

◆ level

JLevel_t JLOGGER::JMessageLogger::level
protectedinherited

Definition at line 228 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:
JLOGGER::JLogger::m_mutex
JSYNCHRONIZATION::JMutex m_mutex
Definition: JLogger.hh:51
JLOGGER::JMessageLogger::typeout
virtual void typeout(const std::string &tag, const std::string &message)
Report message.
Definition: JMessageLogger.hh:173
JLOGGER::JMessageLogger::WARNING
Warning.
Definition: JMessageLogger.hh:62
JSYSTEM::getDateAndTime
static JDateAndTime getDateAndTime
Function object to get ASCII formatted date and time.
Definition: JDate.hh:195
JLOGGER::MESSAGE_TAG
static const std::string MESSAGE_TAG
Message logging tag.
Definition: JMessageLogger.hh:30
JLOGGER::JMessageLogger::ERROR
Error; always logged.
Definition: JMessageLogger.hh:60
JLOGGER::JMessageLogger::OFF
No logging of messages.
Definition: JMessageLogger.hh:59
JLOGGER::JMessageLogger::level
JLevel_t level
Definition: JMessageLogger.hh:228
JLOGGER::JMessageLogger::NOTICE
Notice.
Definition: JMessageLogger.hh:63
TYPEOUT
#define TYPEOUT(LEVEL, MESSAGE)
Definition: JMessageLogger.hh:180
JLOGGER::JMessageLogger::is_valid
bool is_valid() const
Check validity of logger object.
Definition: JMessageLogger.hh:161
JLOGGER::JMessageLogger::JMessageLogger
JMessageLogger()
Default constructor.
Definition: JMessageLogger.hh:73
JLOGGER::JMessageLogger::STATUS
Status; always logged.
Definition: JMessageLogger.hh:61
JLOGGER::JMessageLogger::DEBUG
Debug.
Definition: JMessageLogger.hh:64
JLOGGER::JMessageLogger::name
std::string name
Definition: JMessageLogger.hh:227
JSYNCHRONIZATION::JBasicScopedLock
Scoped lock.
Definition: JMutex.hh:47
JLOGGER::JMessageLogger::host
std::string host
Definition: JMessageLogger.hh:226
JLOGGER::JMessageLogger::logger
JSharedPointer< JLogger > logger
Definition: JMessageLogger.hh:225
JLOGGER::JMessageLogger::JMessage_t
std::string JMessage_t
Definition: JMessageLogger.hh:67