Jpp  18.3.1
the software that should make you happy
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
Public Types | Public Member Functions | Protected Member Functions | Protected Attributes | List of all members
JLOGGER::JMessageLogger Class Reference

Message logger. More...

#include <JMessageLogger.hh>

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

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

 JMessageLogger ()
 Default constructor. More...
 
 JMessageLogger (JLogger *__logger, const std::string &__name, const int __level=ERROR)
 Constructor. 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...
 
virtual void typeout (const std::string &tag, const std::string &message) override
 Report message. 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
 

Detailed Description

Message logger.

The class implements the following message functions:

The argument of these messages is an STL string.
The message reported consists of <date time> <host name> <process name> <prefix> <message>
where the prefix is "DEBUG", "WARNING", "ERROR", "STATUS" or "NOTICE".
A debug level can be specified which is used to filter the message types for reporting.
The level OFF will cause the message logger to stop reporting any messages.

Note that the JXXXStreamer classes can be used for STL ostream compatible message logging (see JMessageStream.hh).

Definition at line 53 of file JMessageLogger.hh.

Member Typedef Documentation

Definition at line 67 of file JMessageLogger.hh.

Member Enumeration Documentation

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  };
Status; always logged.
Error; always logged.
No logging of messages.

Constructor & Destructor Documentation

JLOGGER::JMessageLogger::JMessageLogger ( )
inline

Default constructor.

Definition at line 73 of file JMessageLogger.hh.

73  :
74  logger(),
75  host (getIPaddress()),
76  name ("<unknown>")
77  {
78  setLevel(OFF);
79  }
std::string getIPaddress(const int ip)
Get IP address (decimal-dot notation).
Definition: JNetwork.hh:154
JSharedPointer< JLogger > logger
No logging of messages.
void setLevel(const int __level)
Set debug level.
JLOGGER::JMessageLogger::JMessageLogger ( JLogger __logger,
const std::string __name,
const int  __level = ERROR 
)
inline

Constructor.

Parameters
__loggerpointer to logger
__namename
__leveldebug level

Definition at line 89 of file JMessageLogger.hh.

91  :
92  host (getIPaddress()),
93  name (__name)
94  {
95  logger.reset(__logger);
96 
97  setLevel(__level);
98  }
std::string getIPaddress(const int ip)
Get IP address (decimal-dot notation).
Definition: JNetwork.hh:154
JSharedPointer< JLogger > logger
void setLevel(const int __level)
Set debug level.

Member Function Documentation

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

Reset logger.

Parameters
__loggerpointer to logger

Definition at line 106 of file JMessageLogger.hh.

107  {
108  logger.reset(__logger);
109  }
JSharedPointer< JLogger > logger
JLevel_t JLOGGER::JMessageLogger::getLevel ( )
inline

Get debug level.

Returns
debug level

Definition at line 117 of file JMessageLogger.hh.

118  {
119  return level;
120  }
void JLOGGER::JMessageLogger::setLevel ( const int  __level)
inline

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 if (__level == 2)
137  level = NOTICE;
138  else
139  level = DEBUG;
140  }
Error; always logged.
No logging of messages.
void JLOGGER::JMessageLogger::setLevel ( const JLevel_t  __level)
inline

Set debug level.

Parameters
__leveldebug level

Definition at line 148 of file JMessageLogger.hh.

149  {
150  level = __level;
151  }
bool JLOGGER::JMessageLogger::is_valid ( ) const
inline

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

164  {
165  return logger.is_valid();
166  }
JSharedPointer< JLogger > logger
virtual void JLOGGER::JMessageLogger::typeout ( const std::string tag,
const std::string message 
)
inlineoverridevirtual

Report message.

Parameters
tagtag
messagemessage

Implements JLOGGER::JLogger.

Reimplemented in JLOGGER::JMessageLoggerThreadSafe, and JLOGGER::JMessageScheduler.

Definition at line 175 of file JMessageLogger.hh.

177  {
178  logger->typeout(tag, message);
179  }
JSharedPointer< JLogger > logger
void JLOGGER::JMessageLogger::debug ( const JMessage_t message)
inline

Definition at line 184 of file JMessageLogger.hh.

184 { TYPEOUT(DEBUG, message); }
#define TYPEOUT(LEVEL, MESSAGE)
void JLOGGER::JMessageLogger::warning ( const JMessage_t message)
inline

Definition at line 185 of file JMessageLogger.hh.

185 { TYPEOUT(WARNING, message); }
#define TYPEOUT(LEVEL, MESSAGE)
void JLOGGER::JMessageLogger::error ( const JMessage_t message)
inline

Definition at line 186 of file JMessageLogger.hh.

186 { TYPEOUT(ERROR, message); }
#define TYPEOUT(LEVEL, MESSAGE)
Error; always logged.
void JLOGGER::JMessageLogger::notice ( const JMessage_t message)
inline

Definition at line 187 of file JMessageLogger.hh.

187 { TYPEOUT(NOTICE, message); }
#define TYPEOUT(LEVEL, MESSAGE)
void JLOGGER::JMessageLogger::status ( const JMessage_t message)
inline

Definition at line 188 of file JMessageLogger.hh.

188 { TYPEOUT(STATUS, message); }
#define TYPEOUT(LEVEL, MESSAGE)
Status; always logged.
void JLOGGER::JMessageLogger::typeout ( const JLevel_t  __level,
const char *  __prefix,
const JMessage_t __message 
)
inlineprotected

Report message.

Parameters
__levellevel
__prefixprefix
__messagemessage

Definition at line 200 of file JMessageLogger.hh.

203  {
204  if (is_valid() && __level <= level && !__message.empty()) {
205 
206  JMessage_t message;
207 
208  message += getDateAndTime();
209 
210  message += " ";
211  message += host;
212 
213  message += " ";
214  message += name;
215 
216  message += " ";
217  message += __prefix;
218 
219  message += " ";
220  message += __message;
221 
222  typeout(MESSAGE_TAG, message);
223  }
224  }
static const std::string MESSAGE_TAG
Message logging tag.
static JDateAndTime getDateAndTime
Function object to get current date and time.
virtual void typeout(const std::string &tag, const std::string &message) override
Report message.
bool is_valid() const
Check validity of logger object.
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

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

Definition at line 227 of file JMessageLogger.hh.

std::string JLOGGER::JMessageLogger::host
protected

Definition at line 228 of file JMessageLogger.hh.

std::string JLOGGER::JMessageLogger::name
protected

Definition at line 229 of file JMessageLogger.hh.

JLevel_t JLOGGER::JMessageLogger::level
protected

Definition at line 230 of file JMessageLogger.hh.


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