Fawkes API  Fawkes Development Version
fawkes::NetworkLogger Class Reference

Interface for logging to network clients. More...

#include <>>

Inheritance diagram for fawkes::NetworkLogger:

Classes

struct  network_logger_header_t
 Network logging message header. More...
 

Public Types

enum  network_logger_msgtype_t { MSGTYPE_SUBSCRIBE = 1 , MSGTYPE_UNSUBSCRIBE = 2 , MSGTYPE_LOGMESSAGE = 3 }
 NetworkLogger message types. More...
 
- Public Types inherited from fawkes::Logger
enum  LogLevel {
  LL_DEBUG = 0 , LL_INFO = 1 , LL_WARN = 2 , LL_ERROR = 4 ,
  LL_NONE = 8
}
 Log level. More...
 

Public Member Functions

 NetworkLogger (FawkesNetworkHub *hub, LogLevel log_level=LL_DEBUG)
 Constructor. More...
 
virtual ~NetworkLogger ()
 Destructor. More...
 
virtual void log_debug (const char *component, const char *format,...)
 Log debug message. More...
 
virtual void log_info (const char *component, const char *format,...)
 Log informational message. More...
 
virtual void log_warn (const char *component, const char *format,...)
 Log warning message. More...
 
virtual void log_error (const char *component, const char *format,...)
 Log error message. More...
 
virtual void log_debug (const char *component, Exception &e)
 Log debug exception. More...
 
virtual void log_info (const char *component, Exception &e)
 Log informational exception. More...
 
virtual void log_warn (const char *component, Exception &e)
 Log warning exception. More...
 
virtual void log_error (const char *component, Exception &e)
 Log error exception. More...
 
virtual void vlog_debug (const char *component, const char *format, va_list va)
 Log debug message. More...
 
virtual void vlog_info (const char *component, const char *format, va_list va)
 Log informational message. More...
 
virtual void vlog_warn (const char *component, const char *format, va_list va)
 Log warning message. More...
 
virtual void vlog_error (const char *component, const char *format, va_list va)
 Log error message. More...
 
virtual void tlog_debug (struct timeval *t, const char *component, const char *format,...)
 Log debug message for specific time. More...
 
virtual void tlog_info (struct timeval *t, const char *component, const char *format,...)
 Log informational message for specific time. More...
 
virtual void tlog_warn (struct timeval *t, const char *component, const char *format,...)
 Log warning message for specific time. More...
 
virtual void tlog_error (struct timeval *t, const char *component, const char *format,...)
 Log error message for specific time. More...
 
virtual void tlog_debug (struct timeval *t, const char *component, Exception &e)
 Log debug exception for specific time. More...
 
virtual void tlog_info (struct timeval *t, const char *component, Exception &e)
 Log informational exception for specific time. More...
 
virtual void tlog_warn (struct timeval *t, const char *component, Exception &e)
 Log warning exception for specific time. More...
 
virtual void tlog_error (struct timeval *t, const char *component, Exception &e)
 Log error exception for specific time. More...
 
virtual void vtlog_debug (struct timeval *t, const char *component, const char *format, va_list va)
 Log debug message for specific time. More...
 
virtual void vtlog_info (struct timeval *t, const char *component, const char *format, va_list va)
 Log informational message for specific time. More...
 
virtual void vtlog_warn (struct timeval *t, const char *component, const char *format, va_list va)
 Log warning message for specific time. More...
 
virtual void vtlog_error (struct timeval *t, const char *component, const char *format, va_list va)
 Log error message for specific time. More...
 
virtual void handle_network_message (FawkesNetworkMessage *msg)
 Called for incoming messages that are addressed to the correct component ID. More...
 
virtual void client_connected (unsigned int clid)
 Called when a new client connected. More...
 
virtual void client_disconnected (unsigned int clid)
 Called when a client disconnected. More...
 
- Public Member Functions inherited from fawkes::Logger
 Logger (LogLevel log_level=LL_DEBUG)
 Constructor. More...
 
virtual ~Logger ()
 Virtual empty destructor. More...
 
virtual void set_loglevel (LogLevel level)
 Sets the log level. More...
 
virtual LogLevel loglevel ()
 Get log level. More...
 
virtual void log (LogLevel level, const char *component, const char *format,...)
 Log message of given log level. More...
 
virtual void log (LogLevel level, const char *component, Exception &e)
 Log exception for given log level. More...
 
virtual void vlog (LogLevel level, const char *component, const char *format, va_list va)
 Log message for given log level. More...
 
virtual void tlog (LogLevel level, struct timeval *t, const char *component, const char *format,...)
 Log message of given log level and time. More...
 
virtual void tlog (LogLevel level, struct timeval *t, const char *component, Exception &e)
 Log exception for given log level. More...
 
virtual void vtlog (LogLevel level, struct timeval *t, const char *component, const char *format, va_list va)
 Log message for given log level and time. More...
 
- Public Member Functions inherited from fawkes::FawkesNetworkHandler
 FawkesNetworkHandler (unsigned short int id)
 Constructor. More...
 
virtual ~FawkesNetworkHandler ()
 Destructor. More...
 
unsigned short int id () const
 Get the component ID for this handler. More...
 

Additional Inherited Members

- Protected Attributes inherited from fawkes::Logger
LogLevel log_level
 Minimum log level. More...
 

Detailed Description

Interface for logging to network clients.

The NetwokLogger will pipe all output to clients that subscribed for log messages.

Author
Tim Niemueller

Definition at line 40 of file network_logger.h.

Member Enumeration Documentation

◆ network_logger_msgtype_t

NetworkLogger message types.

Enumerator
MSGTYPE_SUBSCRIBE 

Subscribe for logging messages.

MSGTYPE_UNSUBSCRIBE 

Unsubscribe from receiving logging messages.

MSGTYPE_LOGMESSAGE 

Log message.

Definition at line 83 of file network_logger.h.

Constructor & Destructor Documentation

◆ NetworkLogger()

fawkes::NetworkLogger::NetworkLogger ( FawkesNetworkHub hub,
LogLevel  log_level = LL_DEBUG 
)

Constructor.

Parameters
hubFawkesNetworkHub to use to send and receive messages
log_levelminimum level to log

Definition at line 55 of file network_logger.cpp.

References fawkes::FawkesNetworkHub::add_handler().

◆ ~NetworkLogger()

fawkes::NetworkLogger::~NetworkLogger ( )
virtual

Destructor.

Definition at line 64 of file network_logger.cpp.

References fawkes::FawkesNetworkHub::remove_handler().

Member Function Documentation

◆ client_connected()

void fawkes::NetworkLogger::client_connected ( unsigned int  clid)
virtual

Called when a new client connected.

If any actions need to be taken on your side this is the place to do it.

Parameters
clidclient ID of new client

Implements fawkes::FawkesNetworkHandler.

Definition at line 387 of file network_logger.cpp.

◆ client_disconnected()

void fawkes::NetworkLogger::client_disconnected ( unsigned int  clid)
virtual

Called when a client disconnected.

If any actions need to be taken on your side this is the place to do it. Note that you cannot send any further messages to this client!

Parameters
clidclient ID of disconnected client

Implements fawkes::FawkesNetworkHandler.

Definition at line 392 of file network_logger.cpp.

References fawkes::LockList< Type >::remove_locked().

◆ handle_network_message()

void fawkes::NetworkLogger::handle_network_message ( FawkesNetworkMessage msg)
virtual

Called for incoming messages that are addressed to the correct component ID.

Note that this message should be processed really really fast! A good idea is to enqueue the message in an inbound queue (remember to ref() it!) and then process it in the next run of loop() or wakeup a processing thread.

Parameters
msgmessage to handle. If you want to keep this message you have to ref() it! It is guaranteed that the message will not be erased during the handleNetworkMessage() run, but afterwards no guarantee is made. So if you want to store the message internally for example for later processing you have to reference the message.

Implements fawkes::FawkesNetworkHandler.

Definition at line 375 of file network_logger.cpp.

References fawkes::FawkesNetworkMessage::cid(), fawkes::FawkesNetworkMessage::clid(), fawkes::LockList< Type >::lock(), fawkes::FawkesNetworkMessage::msgid(), MSGTYPE_SUBSCRIBE, and fawkes::LockList< Type >::unlock().

◆ log_debug() [1/2]

void fawkes::NetworkLogger::log_debug ( const char *  component,
const char *  format,
  ... 
)
virtual

Log debug message.

Parameters
componentcomponent, used to distuinguish logged messages
formatformat of the message, see man page of sprintf for available tokens.

Implements fawkes::Logger.

Definition at line 167 of file network_logger.cpp.

References vlog_debug().

◆ log_debug() [2/2]

void fawkes::NetworkLogger::log_debug ( const char *  component,
Exception e 
)
virtual

Log debug exception.

Parameters
componentcomponent, used to distuinguish logged messages
eexception to log, exception messages will be logged

Implements fawkes::Logger.

Definition at line 203 of file network_logger.cpp.

References fawkes::Exception::begin(), fawkes::Exception::end(), fawkes::Logger::LL_DEBUG, fawkes::LockList< Type >::lock(), fawkes::Logger::log_level, and fawkes::LockList< Type >::unlock().

◆ log_error() [1/2]

void fawkes::NetworkLogger::log_error ( const char *  component,
const char *  format,
  ... 
)
virtual

Log error message.

Parameters
componentcomponent, used to distuinguish logged messages
formatformat of the message, see man page of sprintf for available tokens.

Implements fawkes::Logger.

Definition at line 194 of file network_logger.cpp.

References vlog_error().

◆ log_error() [2/2]

void fawkes::NetworkLogger::log_error ( const char *  component,
Exception e 
)
virtual

Log error exception.

Parameters
componentcomponent, used to distuinguish logged messages
eexception to log, exception messages will be logged

Implements fawkes::Logger.

Definition at line 239 of file network_logger.cpp.

References fawkes::Exception::begin(), fawkes::Exception::end(), fawkes::Logger::LL_ERROR, fawkes::LockList< Type >::lock(), fawkes::Logger::log_level, and fawkes::LockList< Type >::unlock().

◆ log_info() [1/2]

void fawkes::NetworkLogger::log_info ( const char *  component,
const char *  format,
  ... 
)
virtual

Log informational message.

Parameters
componentcomponent, used to distuinguish logged messages
formatformat of the message, see man page of sprintf for available tokens.

Implements fawkes::Logger.

Definition at line 176 of file network_logger.cpp.

References vlog_info().

◆ log_info() [2/2]

void fawkes::NetworkLogger::log_info ( const char *  component,
Exception e 
)
virtual

Log informational exception.

Parameters
componentcomponent, used to distuinguish logged messages
eexception to log, exception messages will be logged

Implements fawkes::Logger.

Definition at line 215 of file network_logger.cpp.

References fawkes::Exception::begin(), fawkes::Exception::end(), fawkes::Logger::LL_INFO, fawkes::LockList< Type >::lock(), fawkes::Logger::log_level, and fawkes::LockList< Type >::unlock().

◆ log_warn() [1/2]

void fawkes::NetworkLogger::log_warn ( const char *  component,
const char *  format,
  ... 
)
virtual

Log warning message.

Parameters
componentcomponent, used to distuinguish logged messages
formatformat of the message, see man page of sprintf for available tokens.

Implements fawkes::Logger.

Definition at line 185 of file network_logger.cpp.

References vlog_warn().

◆ log_warn() [2/2]

void fawkes::NetworkLogger::log_warn ( const char *  component,
Exception e 
)
virtual

Log warning exception.

Parameters
componentcomponent, used to distuinguish logged messages
eexception to log, exception messages will be logged

Implements fawkes::Logger.

Definition at line 227 of file network_logger.cpp.

References fawkes::Exception::begin(), fawkes::Exception::end(), fawkes::Logger::LL_WARN, fawkes::LockList< Type >::lock(), fawkes::Logger::log_level, and fawkes::LockList< Type >::unlock().

◆ tlog_debug() [1/2]

void fawkes::NetworkLogger::tlog_debug ( struct timeval *  t,
const char *  component,
const char *  format,
  ... 
)
virtual

Log debug message for specific time.

Parameters
ttime for this message to log
componentcomponent, used to distuinguish logged messages
formatformat of the message, see man page of sprintf for available tokens.

Implements fawkes::Logger.

Definition at line 291 of file network_logger.cpp.

References vtlog_debug().

◆ tlog_debug() [2/2]

void fawkes::NetworkLogger::tlog_debug ( struct timeval *  t,
const char *  component,
Exception e 
)
virtual

Log debug exception for specific time.

Parameters
ttime for this message to log
componentcomponent, used to distuinguish logged messages
eexception to log, exception messages will be logged

Implements fawkes::Logger.

Definition at line 327 of file network_logger.cpp.

References fawkes::Exception::begin(), fawkes::Exception::end(), fawkes::Logger::LL_DEBUG, fawkes::LockList< Type >::lock(), fawkes::Logger::log_level, and fawkes::LockList< Type >::unlock().

◆ tlog_error() [1/2]

void fawkes::NetworkLogger::tlog_error ( struct timeval *  t,
const char *  component,
const char *  format,
  ... 
)
virtual

Log error message for specific time.

Parameters
ttime for this message to log
componentcomponent, used to distuinguish logged messages
formatformat of the message, see man page of sprintf for available tokens.

Implements fawkes::Logger.

Definition at line 318 of file network_logger.cpp.

References vtlog_error().

◆ tlog_error() [2/2]

void fawkes::NetworkLogger::tlog_error ( struct timeval *  t,
const char *  component,
Exception e 
)
virtual

Log error exception for specific time.

Parameters
ttime for this message to log
componentcomponent, used to distuinguish logged messages
eexception to log, exception messages will be logged

Implements fawkes::Logger.

Definition at line 363 of file network_logger.cpp.

References fawkes::Exception::begin(), fawkes::Exception::end(), fawkes::Logger::LL_ERROR, fawkes::LockList< Type >::lock(), fawkes::Logger::log_level, and fawkes::LockList< Type >::unlock().

◆ tlog_info() [1/2]

void fawkes::NetworkLogger::tlog_info ( struct timeval *  t,
const char *  component,
const char *  format,
  ... 
)
virtual

Log informational message for specific time.

Parameters
ttime for this message to log
componentcomponent, used to distuinguish logged messages
formatformat of the message, see man page of sprintf for available tokens.

Implements fawkes::Logger.

Definition at line 300 of file network_logger.cpp.

References vtlog_info().

◆ tlog_info() [2/2]

void fawkes::NetworkLogger::tlog_info ( struct timeval *  t,
const char *  component,
Exception e 
)
virtual

Log informational exception for specific time.

Parameters
ttime for this message to log
componentcomponent, used to distuinguish logged messages
eexception to log, exception messages will be logged

Implements fawkes::Logger.

Definition at line 339 of file network_logger.cpp.

References fawkes::Exception::begin(), fawkes::Exception::end(), fawkes::Logger::LL_INFO, fawkes::LockList< Type >::lock(), fawkes::Logger::log_level, and fawkes::LockList< Type >::unlock().

◆ tlog_warn() [1/2]

void fawkes::NetworkLogger::tlog_warn ( struct timeval *  t,
const char *  component,
const char *  format,
  ... 
)
virtual

Log warning message for specific time.

Parameters
ttime for this message to log
componentcomponent, used to distuinguish logged messages
formatformat of the message, see man page of sprintf for available tokens.

Implements fawkes::Logger.

Definition at line 309 of file network_logger.cpp.

References vtlog_warn().

◆ tlog_warn() [2/2]

void fawkes::NetworkLogger::tlog_warn ( struct timeval *  t,
const char *  component,
Exception e 
)
virtual

Log warning exception for specific time.

Parameters
ttime for this message to log
componentcomponent, used to distuinguish logged messages
eexception to log, exception messages will be logged

Implements fawkes::Logger.

Definition at line 351 of file network_logger.cpp.

References fawkes::Exception::begin(), fawkes::Exception::end(), fawkes::Logger::LL_WARN, fawkes::LockList< Type >::lock(), fawkes::Logger::log_level, and fawkes::LockList< Type >::unlock().

◆ vlog_debug()

void fawkes::NetworkLogger::vlog_debug ( const char *  component,
const char *  format,
va_list  va 
)
virtual

Log debug message.

Parameters
componentcomponent, used to distuinguish logged messages
formatformat of the message, see man page of sprintf for available tokens.
vavariable argument list

Implements fawkes::Logger.

Definition at line 127 of file network_logger.cpp.

References fawkes::Logger::LL_DEBUG, fawkes::LockList< Type >::lock(), fawkes::Logger::log_level, and fawkes::LockList< Type >::unlock().

Referenced by log_debug().

◆ vlog_error()

void fawkes::NetworkLogger::vlog_error ( const char *  component,
const char *  format,
va_list  va 
)
virtual

Log error message.

Parameters
componentcomponent, used to distuinguish logged messages
formatformat of the message, see man page of sprintf for available tokens.
vavariable argument list

Implements fawkes::Logger.

Definition at line 157 of file network_logger.cpp.

References fawkes::Logger::LL_ERROR, fawkes::LockList< Type >::lock(), fawkes::Logger::log_level, and fawkes::LockList< Type >::unlock().

Referenced by log_error().

◆ vlog_info()

void fawkes::NetworkLogger::vlog_info ( const char *  component,
const char *  format,
va_list  va 
)
virtual

Log informational message.

Parameters
componentcomponent, used to distuinguish logged messages
formatformat of the message, see man page of sprintf for available tokens.
vavariable argument list

Implements fawkes::Logger.

Definition at line 137 of file network_logger.cpp.

References fawkes::Logger::LL_INFO, fawkes::LockList< Type >::lock(), fawkes::Logger::log_level, and fawkes::LockList< Type >::unlock().

Referenced by log_info().

◆ vlog_warn()

void fawkes::NetworkLogger::vlog_warn ( const char *  component,
const char *  format,
va_list  va 
)
virtual

Log warning message.

Parameters
componentcomponent, used to distuinguish logged messages
formatformat of the message, see man page of sprintf for available tokens.
vavariable argument list

Implements fawkes::Logger.

Definition at line 147 of file network_logger.cpp.

References fawkes::Logger::LL_WARN, fawkes::LockList< Type >::lock(), fawkes::Logger::log_level, and fawkes::LockList< Type >::unlock().

Referenced by log_warn().

◆ vtlog_debug()

void fawkes::NetworkLogger::vtlog_debug ( struct timeval *  t,
const char *  component,
const char *  format,
va_list  va 
)
virtual

Log debug message for specific time.

Parameters
ttime for this message to log
componentcomponent, used to distuinguish logged messages
formatformat of the message, see man page of sprintf for available tokens.
vavariable argument list

Implements fawkes::Logger.

Definition at line 251 of file network_logger.cpp.

References fawkes::Logger::LL_DEBUG, fawkes::LockList< Type >::lock(), fawkes::Logger::log_level, and fawkes::LockList< Type >::unlock().

Referenced by tlog_debug().

◆ vtlog_error()

void fawkes::NetworkLogger::vtlog_error ( struct timeval *  t,
const char *  component,
const char *  format,
va_list  va 
)
virtual

Log error message for specific time.

Parameters
ttime for this message to log
componentcomponent, used to distuinguish logged messages
formatformat of the message, see man page of sprintf for available tokens.
vavariable argument list

Implements fawkes::Logger.

Definition at line 281 of file network_logger.cpp.

References fawkes::Logger::LL_ERROR, fawkes::LockList< Type >::lock(), fawkes::Logger::log_level, and fawkes::LockList< Type >::unlock().

Referenced by tlog_error().

◆ vtlog_info()

void fawkes::NetworkLogger::vtlog_info ( struct timeval *  t,
const char *  component,
const char *  format,
va_list  va 
)
virtual

Log informational message for specific time.

Parameters
ttime for this message to log
componentcomponent, used to distuinguish logged messages
formatformat of the message, see man page of sprintf for available tokens.
vavariable argument list

Implements fawkes::Logger.

Definition at line 261 of file network_logger.cpp.

References fawkes::Logger::LL_INFO, fawkes::LockList< Type >::lock(), fawkes::Logger::log_level, and fawkes::LockList< Type >::unlock().

Referenced by tlog_info().

◆ vtlog_warn()

void fawkes::NetworkLogger::vtlog_warn ( struct timeval *  t,
const char *  component,
const char *  format,
va_list  va 
)
virtual

Log warning message for specific time.

Parameters
ttime for this message to log
componentcomponent, used to distuinguish logged messages
formatformat of the message, see man page of sprintf for available tokens.
vavariable argument list

Implements fawkes::Logger.

Definition at line 271 of file network_logger.cpp.

References fawkes::Logger::LL_WARN, fawkes::LockList< Type >::lock(), fawkes::Logger::log_level, and fawkes::LockList< Type >::unlock().

Referenced by tlog_warn().


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