4.1 Debug Output

/* Initialize debug system */
void d3tui_debug_init(d3tui_log_level_t level);

/* Shutdown debug system */
void d3tui_debug_shutdown(void);

/* Set log level */
void d3tui_debug_set_level(d3tui_log_level_t level);

/* Add debug backend */
void d3tui_debug_add_backend(d3tui_debug_backend_t *backend);

/* Remove debug backend */
void d3tui_debug_remove_backend(const char *name);

/* Log messages */
void d3tui_log(d3tui_log_level_t level, const char *fmt, ...)
    __attribute__((format(printf, 2, 3)));
void d3tui_log_error(const char *fmt, ...) __attribute__((format(printf, 1, 2)));
void d3tui_log_warn(const char *fmt, ...) __attribute__((format(printf, 1, 2)));
void d3tui_log_info(const char *fmt, ...) __attribute__((format(printf, 1, 2)));
void d3tui_log_debug(const char *fmt, ...) __attribute__((format(printf, 1, 2)));
void d3tui_log_trace(const char *fmt, ...) __attribute__((format(printf, 1, 2)));