summaryrefslogtreecommitdiff
path: root/lib/ntdb/test/logging.c
blob: 2819dd7cad0b04f14888ff0f6bbe9a05259cf01e (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
#include <stdio.h>
#include <stdlib.h>
#include "tap-interface.h"
#include "logging.h"

unsigned tap_log_messages;
const char *log_prefix = "";
char *log_last = NULL;
bool suppress_logging;

union ntdb_attribute tap_log_attr = {
	.log = { .base = { .attr = NTDB_ATTRIBUTE_LOG },
		 .fn = tap_log_fn }
};

void tap_log_fn(struct ntdb_context *ntdb,
		enum ntdb_log_level level,
		enum NTDB_ERROR ecode,
		const char *message, void *priv)
{
	if (suppress_logging)
		return;

	diag("ntdb log level %u: %s: %s%s",
	     level, ntdb_errorstr(ecode), log_prefix, message);
	if (log_last)
		free(log_last);
	log_last = strdup(message);
	tap_log_messages++;
}