diff options
author | emersion <contact@emersion.fr> | 2019-03-17 11:30:55 +0200 |
---|---|---|
committer | Drew DeVault <sir@cmpwn.com> | 2019-04-07 16:09:00 -0600 |
commit | 43bd1d807af533fa369ed3d5431ca2f4e776e9bf (patch) | |
tree | 793ef7bc8bd23ccc425141d86224f6545bcdc361 | |
parent | 09b2833dcddaae70e48902562c7e393db06ea521 (diff) |
util/log: setup wayland log handler
-rw-r--r-- | util/log.c | 14 |
1 files changed, 13 insertions, 1 deletions
@@ -1,4 +1,4 @@ -#define _POSIX_C_SOURCE 199506L +#define _XOPEN_SOURCE 700 // for snprintf #include <errno.h> #include <stdarg.h> #include <stdio.h> @@ -6,6 +6,7 @@ #include <string.h> #include <time.h> #include <unistd.h> +#include <wayland-server.h> #include <wlr/util/log.h> static bool colored = true; @@ -49,6 +50,15 @@ static void log_stderr(enum wlr_log_importance verbosity, const char *fmt, static wlr_log_func_t log_callback = log_stderr; +static void log_wl(const char *fmt, va_list args) { + static char wlr_fmt[1024]; + int n = snprintf(wlr_fmt, sizeof(wlr_fmt), "[wayland] %s", fmt); + if (n > 0 && wlr_fmt[n - 1] == '\n') { + wlr_fmt[n - 1] = '\0'; + } + _wlr_vlog(WLR_INFO, wlr_fmt, args); +} + void wlr_log_init(enum wlr_log_importance verbosity, wlr_log_func_t callback) { if (verbosity < WLR_LOG_IMPORTANCE_LAST) { log_importance = verbosity; @@ -56,6 +66,8 @@ void wlr_log_init(enum wlr_log_importance verbosity, wlr_log_func_t callback) { if (callback) { log_callback = callback; } + + wl_log_set_handler_server(log_wl); } void _wlr_vlog(enum wlr_log_importance verbosity, const char *fmt, va_list args) { |