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.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 87 of file network.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 57 of file network.cpp.

References fawkes::FawkesNetworkHub::add_handler().

◆ ~NetworkLogger()

fawkes::NetworkLogger::~NetworkLogger ( )
virtual

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 419 of file network.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 425 of file network.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 406 of file network.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 177 of file network.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 217 of file network.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 207 of file network.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 255 of file network.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 187 of file network.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 229 of file network.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 197 of file network.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 242 of file network.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 315 of file network.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 355 of file network.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 345 of file network.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 393 of file network.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 325 of file network.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 367 of file network.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 335 of file network.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 380 of file network.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 133 of file network.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 166 of file network.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 144 of file network.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 155 of file network.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 270 of file network.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 304 of file network.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 282 of file network.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 293 of file network.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: