X-Git-Url: http://git.ozlabs.org/?p=ccan;a=blobdiff_plain;f=ccan%2Ftdb2%2Ftest%2Flogging.c;h=0712cc00a621db816c5e4377958bf10db841486b;hp=85bdc064c80a7fe179f848e789dc62d1806f2d15;hb=22d0e0dc59fc9d7e0046fec6971ef478c2d604fd;hpb=0455668028cfe8f0417037975bc3d7dd742974db diff --git a/ccan/tdb2/test/logging.c b/ccan/tdb2/test/logging.c index 85bdc064..0712cc00 100644 --- a/ccan/tdb2/test/logging.c +++ b/ccan/tdb2/test/logging.c @@ -1,39 +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(); - /* Strip trailing \n: diag adds it. */ - if (p[strlen(p)-1] == '\n') - p[strlen(p)-1] = '\0'; - diag("tdb log level %u: %s%s", level, log_prefix, 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++; }