X-Git-Url: http://git.ozlabs.org/?a=blobdiff_plain;f=ccan%2Ftdb2%2Ftest%2Flogging.c;h=0712cc00a621db816c5e4377958bf10db841486b;hb=919937354a331bb964564a11b5a5b80403ff8db9;hp=7fd3b1f2345e209b347c7a6e5fc380d38d61ec81;hpb=2088fa3cd72332f5517edeb9267e381fdf35db01;p=ccan diff --git a/ccan/tdb2/test/logging.c b/ccan/tdb2/test/logging.c index 7fd3b1f2..0712cc00 100644 --- a/ccan/tdb2/test/logging.c +++ b/ccan/tdb2/test/logging.c @@ -1,31 +1,31 @@ -#define _GNU_SOURCE #include #include -#include #include #include "logging.h" unsigned tap_log_messages; +const char *log_prefix = ""; +char *log_last = NULL; +bool suppress_logging; union tdb_attribute tap_log_attr = { .log = { .base = { .attr = TDB_ATTRIBUTE_LOG }, - .log_fn = tap_log_fn } + .fn = tap_log_fn } }; void tap_log_fn(struct tdb_context *tdb, - enum tdb_debug_level level, void *priv, - const char *fmt, ...) + enum tdb_log_level level, + enum TDB_ERROR ecode, + const char *message, void *priv) { - va_list ap; - char *p; + if (suppress_logging) + return; - va_start(ap, fmt); - if (vasprintf(&p, fmt, ap) == -1) - abort(); - diag("tdb log level %u: %s", level, p); - free(p); - if (level != TDB_DEBUG_TRACE) - tap_log_messages++; - va_end(ap); + diag("tdb log level %u: %s: %s%s", + level, tdb_errorstr(ecode), log_prefix, message); + if (log_last) + free(log_last); + log_last = strdup(message); + tap_log_messages++; }