24 #include <logging/network.h>
26 #include <core/threading/mutex.h>
27 #include <netcomm/fawkes/component_ids.h>
28 #include <netcomm/fawkes/hub.h>
29 #include <netcomm/utils/ntoh64.h>
33 #include <netinet/in.h>
76 const char *component,
bool is_exception,
77 const char *format, va_list va)
81 gettimeofday(&now, NULL);
85 NetworkLoggerMessageContent *content =
new NetworkLoggerMessageContent(level, t,
90 for ( __ssit = __subscribers.begin(); __ssit != __subscribers.end(); ++__ssit) {
91 NetworkLoggerMessageContent *content_copy =
new NetworkLoggerMessageContent(content);
94 }
catch (Exception &e) {
105 const char *component,
bool is_exception,
110 gettimeofday(&now, NULL);
114 NetworkLoggerMessageContent *content =
new NetworkLoggerMessageContent(level, t,
119 for ( __ssit = __subscribers.begin(); __ssit != __subscribers.end(); ++__ssit) {
120 NetworkLoggerMessageContent *content_copy =
new NetworkLoggerMessageContent(content);
123 }
catch (Exception &e) {
136 __subscribers.
lock();
137 send_message(
LL_DEBUG, NULL, component,
false, format, va);
147 __subscribers.
lock();
148 send_message(
LL_INFO, NULL, component,
false, format, va);
158 __subscribers.
lock();
159 send_message(
LL_WARN, NULL, component,
false, format, va);
169 __subscribers.
lock();
170 send_message(
LL_ERROR, NULL, component,
false, format, va);
180 va_start(arg, format);
190 va_start(arg, format);
200 va_start(arg, format);
210 va_start(arg, format);
220 __subscribers.
lock();
222 send_message(
LL_DEBUG, NULL, component,
true, *i);
232 __subscribers.
lock();
234 send_message(
LL_INFO, NULL, component,
true, *i);
245 __subscribers.
lock();
247 send_message(
LL_WARN, NULL, component,
true, *i);
258 __subscribers.
lock();
260 send_message(
LL_ERROR, NULL, component,
true, *i);
271 const char *format, va_list va)
274 __subscribers.
lock();
275 send_message(
LL_DEBUG, t, component,
false, format, va);
285 __subscribers.
lock();
286 send_message(
LL_INFO, t, component,
false, format, va);
296 __subscribers.
lock();
297 send_message(
LL_WARN, t, component,
false, format, va);
307 __subscribers.
lock();
308 send_message(
LL_ERROR, t, component,
false, format, va);
318 va_start(arg, format);
328 va_start(arg, format);
338 va_start(arg, format);
348 va_start(arg, format);
358 __subscribers.
lock();
360 send_message(
LL_DEBUG, t, component,
true, *i);
370 __subscribers.
lock();
372 send_message(
LL_INFO, t, component,
true, *i);
383 __subscribers.
lock();
385 send_message(
LL_WARN, t, component,
true, *i);
396 __subscribers.
lock();
398 send_message(
LL_ERROR, t, component,
true, *i);
408 if ( (msg->
cid() == FAWKES_CID_NETWORKLOGGER) &&
410 __subscribers.
lock();
411 __subscribers.push_back(msg->
clid());
412 __subscribers.sort();
413 __subscribers.unique();
449 const char *component,
451 const char *format, va_list va)
455 if ( (tmplen = vasprintf(&tmp, format, va)) != -1 ) {
458 __own_payload =
true;
461 header->exception = is_exception ? 1 : 0;
462 header->
time_sec = hton64(t->tv_sec);
482 const char *component,
488 __own_payload =
true;
491 header->exception = is_exception ? 1 : 0;
492 header->
time_sec = hton64(t->tv_sec);
508 __own_payload =
true;
525 void *payload,
size_t payload_size)
527 if ( component_id != FAWKES_CID_NETWORKLOGGER ) {
533 __own_payload =
false;
552 rv.tv_sec = (time_t)ntoh64(header->time_sec);
553 rv.tv_usec = ntohl(header->time_usec);
594 return (header->exception == 1);