util: logging to the afb daemon
authorMarcus Fritzsch <marcus_fritzsch@mentor.com>
Thu, 6 Jul 2017 09:59:36 +0000 (11:59 +0200)
committerMarcus Fritzsch <marcus_fritzsch@mentor.com>
Tue, 8 Aug 2017 15:24:00 +0000 (17:24 +0200)
Signed-off-by: Marcus Fritzsch <marcus_fritzsch@mentor.com>
src/main.cpp
src/util.cpp
src/util.hpp

index a2331c4..7be0b57 100644 (file)
@@ -5,9 +5,8 @@
 #include <algorithm>
 #include <json.h>
 
-#define AFB_BINDING_VERSION 2
-
 extern "C" {
+#define AFB_BINDING_VERSION 2
 #include <afb/afb-binding.h>
 #include <systemd/sd-event.h>
 }
index 623702d..5042342 100644 (file)
@@ -8,64 +8,6 @@
 
 #include <unistd.h>
 
-struct strftime_cache {
-   time_t time;
-   char buf[128];
-};
-
-static void log_(char const *log_type, FILE *stream, char const *fmt,
-                 va_list args) {
-   static struct strftime_cache strft;
-
-   time_t t = time(nullptr);
-   if (t != strft.time) {
-      strft.time = t;
-      struct tm tm;
-      struct tm *tmp = localtime_r(&t, &tm);
-      strftime(strft.buf, sizeof(strft.buf), "%Y-%m-%dT%H:%M:%S", tmp);
-   }
-
-   fputs(program_invocation_short_name, stream);
-   fputs("  ", stream);
-   fputs(strft.buf, stream);
-   fputs("  ", stream);
-   fputs(log_type, stream);
-   fputs("  ", stream);
-   vfprintf(stream, fmt, args);
-   fputs("\n", stream);
-}
-
-void lognotice(char const *fmt, ...) noexcept {
-   va_list a;
-   va_start(a, fmt);
-   log_("notice", stdout, fmt, a);
-   va_end(a);
-}
-
-void logerror(char const *fmt, ...) noexcept {
-   va_list a;
-   va_start(a, fmt);
-   log_("error", stderr, fmt, a);
-   va_end(a);
-}
-
-void fatal(char const *fmt, ...) noexcept {
-   va_list a;
-   va_start(a, fmt);
-   log_("fatal", stderr, fmt, a);
-   va_end(a);
-   abort();
-}
-
-#ifdef DEBUG_OUTPUT
-void logdebug(char const *fmt, ...) noexcept {
-   va_list a;
-   va_start(a, fmt);
-   log_("debug", stdout, fmt, a);
-   va_end(a);
-}
-#endif
-
 void Poller::add_fd(int fd, std::function<int(int)> handler) {
    pfds.emplace_back(pollfd{.fd = fd, .events = POLLIN, .revents = 0});
    handlers.emplace_back(std::move(handler));
index 0a3b8de..94838c0 100644 (file)
@@ -5,6 +5,11 @@
 #include <sys/poll.h>
 #include <vector>
 
+extern "C" {
+#define AFB_BINDING_VERSION 2
+#include <afb/afb-binding.h>
+};
+
 #ifdef __GNUC__
 #define ATTR_FORMAT(stringindex, firsttocheck) \
    __attribute__((format(printf, stringindex, firsttocheck)))
 #define ATTR_NORETURN
 #endif
 
-void lognotice(char const *fmt, ...) noexcept ATTR_FORMAT(1, 2);
-void logerror(char const *fmt, ...) noexcept ATTR_FORMAT(1, 2);
-void fatal(char const *fmt, ...) noexcept ATTR_FORMAT(1, 2) ATTR_NORETURN;
+#define lognotice(...) AFB_NOTICE(__VA_ARGS__)
+#define logerror(...) AFB_ERROR(__VA_ARGS__)
+#define fatal(...)            \
+   do {                       \
+      AFB_ERROR(__VA_ARGS__); \
+      abort();                \
+   } while (0)
 
 #ifdef DEBUG_OUTPUT
-void logdebug(char const *fmt, ...) noexcept ATTR_FORMAT(1, 2);
+#define logdebug(...) AFB_DEBUG(__VA_ARGS__)
 #else
-static inline void logdebug(char const *fmt, ...) noexcept ATTR_FORMAT(1, 2);
-static inline void logdebug(char const *fmt, ...) noexcept {}
+#define logdebug(...)
 #endif
 
 //      _                   _                 _                       __     _