diff options
author | Marcus Fritzsch <marcus_fritzsch@mentor.com> | 2017-07-06 11:59:36 +0200 |
---|---|---|
committer | Marcus Fritzsch <marcus_fritzsch@mentor.com> | 2017-08-08 17:24:00 +0200 |
commit | d45f8674ced71594fa9ba99900cc87a19fcecb20 (patch) | |
tree | 9cc060604ae80a34783b1b59ad7a289367fcd3bd | |
parent | 9dfa6b9427115e7402ce25e40e4d78b20d559c93 (diff) |
util: logging to the afb daemon
Signed-off-by: Marcus Fritzsch <marcus_fritzsch@mentor.com>
-rw-r--r-- | src/main.cpp | 3 | ||||
-rw-r--r-- | src/util.cpp | 58 | ||||
-rw-r--r-- | src/util.hpp | 20 |
3 files changed, 15 insertions, 66 deletions
diff --git a/src/main.cpp b/src/main.cpp index a2331c4..7be0b57 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -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> } diff --git a/src/util.cpp b/src/util.cpp index 623702d..5042342 100644 --- a/src/util.cpp +++ b/src/util.cpp @@ -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)); diff --git a/src/util.hpp b/src/util.hpp index 0a3b8de..94838c0 100644 --- a/src/util.hpp +++ b/src/util.hpp @@ -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))) @@ -14,15 +19,18 @@ #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 // _ _ _ __ _ |