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);
void * _payload
Pointer to payload.
const char * get_component() const
Get component.
size_t _payload_size
Payloda size.
virtual void vtlog_info(struct timeval *t, const char *component, const char *format, va_list va)
Log informational message for specific time.
const char * get_message() const
Get message.
LogLevel log_level
Minimum log level.
Message sent over the network with a log message.
informational output about normal procedures
virtual ~NetworkLogger()
Destructor.
virtual void tlog_error(struct timeval *t, const char *component, const char *format,...)
Log error message for specific time.
virtual void lock() const
Lock list.
unsigned short int cid() const
Get component ID.
virtual void log_error(const char *component, const char *format,...)
Log error message.
virtual void tlog_debug(struct timeval *t, const char *component, const char *format,...)
Log debug message for specific time.
NetworkLogger(FawkesNetworkHub *hub, LogLevel log_level=LL_DEBUG)
Constructor.
Fawkes library namespace.
unsigned int clid() const
Get client ID.
virtual void serialize()
Serialize message content.
virtual void add_handler(FawkesNetworkHandler *handler)=0
Add a message handler.
Representation of a message that is sent over the network.
warning, should be investigated but software still functions, an example is that something was reques...
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.
Message iterator for exceptions.
void remove_locked(const Type &x)
Remove element from list with lock protection.
virtual void tlog_info(struct timeval *t, const char *component, const char *format,...)
Log informational message for specific time.
virtual void vtlog_warn(struct timeval *t, const char *component, const char *format, va_list va)
Log warning message for specific time.
error, may be recoverable (software still running) or not (software has to terminate).
iterator end()
Get end iterator for messages.
virtual void handle_network_message(FawkesNetworkMessage *msg)
Called for incoming messages that are addressed to the correct component ID.
virtual void vlog_info(const char *component, const char *format, va_list va)
Log informational message.
Base class for exceptions in Fawkes.
virtual void send(FawkesNetworkMessage *msg)=0
Method to send a message to a specific client.
virtual void client_connected(unsigned int clid)
Called when a new client connected.
virtual void log_warn(const char *component, const char *format,...)
Log warning message.
virtual void vtlog_error(struct timeval *t, const char *component, const char *format, va_list va)
Log error message for specific time.
virtual void vlog_warn(const char *component, const char *format, va_list va)
Log warning message.
virtual void unlock() const
Unlock list.
bool is_exception() const
Check if message was generated by exception.
iterator begin()
Get iterator for messages.
virtual void log_info(const char *component, const char *format,...)
Log informational message.
virtual void * payload()
Return pointer to payload.
Network handler abstract base class.
debug output, relevant only when tracking down problems
void copy_payload(size_t offset, const void *buf, size_t len)
Copy payload into payload buffer to a specified offset.
virtual void vtlog_debug(struct timeval *t, const char *component, const char *format, va_list va)
Log debug message for specific time.
virtual size_t payload_size()
Return payload size.
unsigned short int msgid() const
Get message type ID.
virtual void log_debug(const char *component, const char *format,...)
Log debug message.
virtual void remove_handler(FawkesNetworkHandler *handler)=0
Remove a message handler.
virtual void vlog_debug(const char *component, const char *format, va_list va)
Log debug message.
virtual void vlog_error(const char *component, const char *format, va_list va)
Log error message.
NetworkLoggerMessageContent(Logger::LogLevel log_level, struct timeval *t, const char *component, bool is_exception, const char *message)
Constructor.
virtual void client_disconnected(unsigned int clid)
Called when a client disconnected.
virtual ~NetworkLoggerMessageContent()
Destructor.
Subscribe for logging messages.