Fawkes API
Fawkes Development Version
|
24 #include <core/threading/mutex.h>
25 #include <netcomm/fawkes/component_ids.h>
26 #include <netcomm/fawkes/hub.h>
27 #include <netcomm/utils/ntoh64.h>
28 #include <netinet/in.h>
29 #include <network_logger/network_logger.h>
72 const char * component,
79 gettimeofday(&now, NULL);
83 NetworkLoggerMessageContent *content =
84 new NetworkLoggerMessageContent(level, t, component, is_exception, format, va);
86 for (ssit_ = subscribers_.begin(); ssit_ != subscribers_.end(); ++ssit_) {
87 NetworkLoggerMessageContent *content_copy =
new NetworkLoggerMessageContent(content);
90 }
catch (Exception &e) {
101 const char * component,
103 const char * message)
107 gettimeofday(&now, NULL);
111 NetworkLoggerMessageContent *content =
112 new NetworkLoggerMessageContent(level, t, component, is_exception, message);
114 for (ssit_ = subscribers_.begin(); ssit_ != subscribers_.end(); ++ssit_) {
115 NetworkLoggerMessageContent *content_copy =
new NetworkLoggerMessageContent(content);
118 }
catch (Exception &e) {
131 send_message(
LL_DEBUG, NULL, component,
false, format, va);
141 send_message(
LL_INFO, NULL, component,
false, format, va);
151 send_message(
LL_WARN, NULL, component,
false, format, va);
161 send_message(
LL_ERROR, NULL, component,
false, format, va);
170 va_start(arg, format);
179 va_start(arg, format);
188 va_start(arg, format);
197 va_start(arg, format);
208 send_message(
LL_DEBUG, NULL, component,
true, *i);
220 send_message(
LL_INFO, NULL, component,
true, *i);
232 send_message(
LL_WARN, NULL, component,
true, *i);
244 send_message(
LL_ERROR, NULL, component,
true, *i);
255 send_message(
LL_DEBUG, t, component,
false, format, va);
265 send_message(
LL_INFO, t, component,
false, format, va);
275 send_message(
LL_WARN, t, component,
false, format, va);
285 send_message(
LL_ERROR, t, component,
false, format, va);
294 va_start(arg, format);
303 va_start(arg, format);
312 va_start(arg, format);
321 va_start(arg, format);
332 send_message(
LL_DEBUG, t, component,
true, *i);
344 send_message(
LL_INFO, t, component,
true, *i);
356 send_message(
LL_WARN, t, component,
true, *i);
368 send_message(
LL_ERROR, t, component,
true, *i);
379 subscribers_.push_back(msg->
clid());
381 subscribers_.unique();
414 const char * component,
421 if ((tmplen = vasprintf(&tmp, format, va)) != -1) {
428 header->
time_sec = hton64(t->tv_sec);
450 const char * component,
452 const char * message)
461 header->
time_sec = hton64(t->tv_sec);
499 if (component_id != FAWKES_CID_NETWORKLOGGER) {
505 own_payload_ =
false;
526 rv.tv_sec = (time_t)ntoh64(header->time_sec);
527 rv.tv_usec = ntohl(header->time_usec);
564 return (header->exception == 1);
Message sent over the network with a log message.
virtual void lock() const
Lock list.
iterator end()
Get end iterator for messages.
LogLevel log_level
Minimum log level.
virtual void vlog_error(const char *component, const char *format, va_list va)
Log error message.
virtual void send(FawkesNetworkMessage *msg)=0
Method to send a message to a specific client.
unsigned short int cid() const
Get component ID.
virtual ~NetworkLogger()
Destructor.
virtual void add_handler(FawkesNetworkHandler *handler)=0
Add a message handler.
virtual void * payload()
Return pointer to payload.
virtual void log_warn(const char *component, const char *format,...)
Log warning message.
virtual void vlog_warn(const char *component, const char *format, va_list va)
Log warning message.
virtual void tlog_debug(struct timeval *t, const char *component, const char *format,...)
Log debug message for specific time.
size_t _payload_size
Payloda size.
virtual void handle_network_message(FawkesNetworkMessage *msg)
Called for incoming messages that are addressed to the correct component ID.
Network handler abstract base class.
virtual void tlog_error(struct timeval *t, const char *component, const char *format,...)
Log error message for specific time.
@ MSGTYPE_SUBSCRIBE
Subscribe for logging messages.
virtual void log_info(const char *component, const char *format,...)
Log informational message.
@ LL_DEBUG
debug output, relevant only when tracking down problems
virtual void vtlog_error(struct timeval *t, const char *component, const char *format, va_list va)
Log error message for specific time.
NetworkLoggerMessageContent(Logger::LogLevel log_level, struct timeval *t, const char *component, bool is_exception, const char *message)
Constructor.
NetworkLogger(FawkesNetworkHub *hub, LogLevel log_level=LL_DEBUG)
Constructor.
void copy_payload(size_t offset, const void *buf, size_t len)
Copy payload into payload buffer to a specified offset.
virtual void unlock() const
Unlock list.
virtual void serialize()
Serialize message content.
virtual void log_debug(const char *component, const char *format,...)
Log debug message.
@ LL_INFO
informational output about normal procedures
bool is_exception() const
Check if message was generated by exception.
virtual void tlog_warn(struct timeval *t, const char *component, const char *format,...)
Log warning message for specific time.
Logger::LogLevel get_loglevel() const
Log level.
Fawkes library namespace.
virtual void vtlog_warn(struct timeval *t, const char *component, const char *format, va_list va)
Log warning message for specific time.
virtual void vtlog_debug(struct timeval *t, const char *component, const char *format, va_list va)
Log debug message for specific time.
@ MSGTYPE_LOGMESSAGE
Log message.
void * _payload
Pointer to payload.
@ LL_ERROR
error, may be recoverable (software still running) or not (software has to terminate).
virtual void tlog_info(struct timeval *t, const char *component, const char *format,...)
Log informational message for specific time.
virtual void vlog_debug(const char *component, const char *format, va_list va)
Log debug message.
virtual void vlog_info(const char *component, const char *format, va_list va)
Log informational message.
iterator begin()
Get iterator for messages.
virtual void client_connected(unsigned int clid)
Called when a new client connected.
virtual void vtlog_info(struct timeval *t, const char *component, const char *format, va_list va)
Log informational message for specific time.
virtual void client_disconnected(unsigned int clid)
Called when a client disconnected.
Representation of a message that is sent over the network.
virtual ~NetworkLoggerMessageContent()
Destructor.
virtual void remove_handler(FawkesNetworkHandler *handler)=0
Remove a message handler.
void remove_locked(const Type &x)
Remove element from list with lock protection.
@ LL_WARN
warning, should be investigated but software still functions, an example is that something was reques...
virtual size_t payload_size()
Return payload size.
const char * get_component() const
Get component.
virtual void log_error(const char *component, const char *format,...)
Log error message.
unsigned int clid() const
Get client ID.
const char * get_message() const
Get message.
Message iterator for exceptions.
unsigned short int msgid() const
Get message type ID.
Base class for exceptions in Fawkes.