logging.c 652 B

123456789101112131415161718192021222324252627282930
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include "tap-interface.h"
  4. #include "logging.h"
  5. unsigned tap_log_messages;
  6. const char *log_prefix = "";
  7. char *log_last = NULL;
  8. bool suppress_logging;
  9. union ntdb_attribute tap_log_attr = {
  10. .log = { .base = { .attr = NTDB_ATTRIBUTE_LOG },
  11. .fn = tap_log_fn }
  12. };
  13. void tap_log_fn(struct ntdb_context *ntdb,
  14. enum ntdb_log_level level,
  15. enum NTDB_ERROR ecode,
  16. const char *message, void *priv)
  17. {
  18. if (suppress_logging)
  19. return;
  20. diag("ntdb log level %u: %s: %s%s",
  21. level, ntdb_errorstr(ecode), log_prefix, message);
  22. if (log_last)
  23. free(log_last);
  24. log_last = strdup(message);
  25. tap_log_messages++;
  26. }