From 47d4b43f1a63ca83b7f2dd8bc7eb24f194ebb32f Mon Sep 17 00:00:00 2001 From: Simon Ser Date: Thu, 27 Aug 2020 15:56:14 +0000 Subject: Introduce libseat_set_log_handler This allows libseat users to register a custom logging function. --- include/libseat.h | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) (limited to 'include/libseat.h') diff --git a/include/libseat.h b/include/libseat.h index ba8a1ac..be19c43 100644 --- a/include/libseat.h +++ b/include/libseat.h @@ -135,4 +135,29 @@ int libseat_get_fd(struct libseat *seat); */ int libseat_dispatch(struct libseat *seat, int timeout); +/* + * A log level. + */ +enum libseat_log_level { + LIBSEAT_LOG_LEVEL_SILENT = 0, + LIBSEAT_LOG_LEVEL_ERROR = 1, + LIBSEAT_LOG_LEVEL_INFO = 2, + LIBSEAT_LOG_LEVEL_DEBUG = 3, + LIBSEAT_LOG_LEVEL_LAST, +}; + +/* + * A function that handles log messages. + */ +typedef void (*libseat_log_func)(enum libseat_log_level level, const char *format, va_list args); + +/* + * Sets the handler for log messages. + * + * The handler will be called for each message whose level is lower or equal + * to the current log level. If the handler is NULL, the handler is reset to + * the default. + */ +void libseat_set_log_handler(libseat_log_func handler); + #endif -- cgit v1.2.3