diff options
author | Simon Ser <contact@emersion.fr> | 2020-08-27 15:56:16 +0000 |
---|---|---|
committer | Kenny Levinsen <kl@kl.wtf> | 2020-08-28 01:21:57 +0200 |
commit | 07ceeeebe014374626904e5d7c8a20d1a45453fe (patch) | |
tree | a2e11abccf998199c01d2424f0a19eb85449f8f0 | |
parent | 48b9bf47075271c91097eba4bf8e9316aa33f9c8 (diff) |
Introduce libseat_set_log_level
The default level is SILENT. log_init no longer takes an initial log
level (so that calls to libseat_set_log_level prior to log_init work
correctly).
-rw-r--r-- | common/log.c | 9 | ||||
-rw-r--r-- | include/libseat.h | 8 | ||||
-rw-r--r-- | include/log.h | 2 | ||||
-rw-r--r-- | libseat/libseat.c | 2 | ||||
-rw-r--r-- | seatd/seatd.c | 3 |
5 files changed, 18 insertions, 6 deletions
diff --git a/common/log.c b/common/log.c index 646480d..bea683b 100644 --- a/common/log.c +++ b/common/log.c @@ -12,7 +12,7 @@ const long NSEC_PER_SEC = 1000000000; static void log_stderr(enum libseat_log_level level, const char *fmt, va_list args); -static enum libseat_log_level current_log_level; +static enum libseat_log_level current_log_level = LIBSEAT_LOG_LEVEL_SILENT; static libseat_log_func current_log_handler = log_stderr; static struct timespec start_time = {-1, -1}; static bool colored = false; @@ -64,12 +64,11 @@ static void log_stderr(enum libseat_log_level level, const char *fmt, va_list ar fprintf(stderr, "%s", postfix); } -void log_init(enum libseat_log_level level) { +void log_init(void) { if (start_time.tv_sec >= 0) { return; } clock_gettime(CLOCK_MONOTONIC, &start_time); - current_log_level = level; colored = isatty(STDERR_FILENO); } @@ -93,3 +92,7 @@ void libseat_set_log_handler(libseat_log_func handler) { } current_log_handler = handler; } + +void libseat_set_log_level(enum libseat_log_level level) { + current_log_level = level; +} diff --git a/include/libseat.h b/include/libseat.h index be19c43..891cb86 100644 --- a/include/libseat.h +++ b/include/libseat.h @@ -160,4 +160,12 @@ typedef void (*libseat_log_func)(enum libseat_log_level level, const char *forma */ void libseat_set_log_handler(libseat_log_func handler); +/* + * Sets the libseat log level. + * + * Only log messages whose level is lower or equal than the current log level + * will be processed, others will be ignored. + */ +void libseat_set_log_level(enum libseat_log_level level); + #endif diff --git a/include/log.h b/include/log.h index d4bfd89..9aee33c 100644 --- a/include/log.h +++ b/include/log.h @@ -43,7 +43,7 @@ #define log_debug(str) #endif -void log_init(enum libseat_log_level level); +void log_init(void); void _logf(enum libseat_log_level level, const char *fmt, ...) ATTRIB_PRINTF(2, 3); #endif diff --git a/libseat/libseat.c b/libseat/libseat.c index 19f0e7f..dd5635b 100644 --- a/libseat/libseat.c +++ b/libseat/libseat.c @@ -37,7 +37,7 @@ struct libseat *libseat_open_seat(struct libseat_seat_listener *listener, void * return NULL; } - log_init(LIBSEAT_LOG_LEVEL_SILENT); + log_init(); char *backend_type = getenv("LIBSEAT_BACKEND"); struct libseat *backend = NULL; diff --git a/seatd/seatd.c b/seatd/seatd.c index 71d6b2f..ce4d2bb 100644 --- a/seatd/seatd.c +++ b/seatd/seatd.c @@ -64,7 +64,8 @@ int main(int argc, char *argv[]) { level = LIBSEAT_LOG_LEVEL_DEBUG; } } - log_init(level); + log_init(); + libseat_set_log_level(level); const char *usage = "Usage: seatd [options]\n" "\n" |