diff options
Diffstat (limited to 'ctdb/server/ctdb_logging.c')
-rw-r--r-- | ctdb/server/ctdb_logging.c | 40 |
1 files changed, 40 insertions, 0 deletions
diff --git a/ctdb/server/ctdb_logging.c b/ctdb/server/ctdb_logging.c index 2cc055938f4..7e5367eab53 100644 --- a/ctdb/server/ctdb_logging.c +++ b/ctdb/server/ctdb_logging.c @@ -547,6 +547,46 @@ int ctdb_set_child_logging(struct ctdb_context *ctdb) } +/* + * set up a log handler to catch logging from TEVENT + */ +static void ctdb_tevent_logging(void *private_data, + enum tevent_debug_level level, + const char *fmt, + va_list ap) +{ + enum debug_level lvl = DEBUG_EMERG; + + switch (level) { + case TEVENT_DEBUG_FATAL: + lvl = DEBUG_EMERG; + break; + case TEVENT_DEBUG_ERROR: + lvl = DEBUG_ERR; + break; + case TEVENT_DEBUG_WARNING: + lvl = DEBUG_WARNING; + break; + case TEVENT_DEBUG_TRACE: + lvl = DEBUG_DEBUG; + break; + } + + if (lvl <= LogLevel) { + this_log_level = lvl; + do_debug_v(fmt, ap); + } +} + +int ctdb_init_tevent_logging(struct ctdb_context *ctdb) +{ + int ret; + + ret = tevent_set_debug(ctdb->ev, + ctdb_tevent_logging, + ctdb); + return ret; +} |