From 43bd1d807af533fa369ed3d5431ca2f4e776e9bf Mon Sep 17 00:00:00 2001 From: emersion Date: Sun, 17 Mar 2019 11:30:55 +0200 Subject: [PATCH] util/log: setup wayland log handler --- util/log.c | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/util/log.c b/util/log.c index 3ef5f484..2f4ed86d 100644 --- a/util/log.c +++ b/util/log.c @@ -1,4 +1,4 @@ -#define _POSIX_C_SOURCE 199506L +#define _XOPEN_SOURCE 700 // for snprintf #include #include #include @@ -6,6 +6,7 @@ #include #include #include +#include #include 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) {