From: Pekka Paalanen <p...@iki.fi> This registers a new weston-debug scope "log" through which one can get live log output interspersed with possible other debugging prints.
Signed-off-by: Pekka Paalanen <p...@iki.fi> pass the log_scope to weston_debug_scope_timestamp API to append the scope name to the timestamp Signed-off-by: Maniraj Devadoss <external.mdevad...@de.adit-jv.com> --- compositor/main.c | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/compositor/main.c b/compositor/main.c index 4a50a42..e9add31 100644 --- a/compositor/main.c +++ b/compositor/main.c @@ -83,6 +83,7 @@ struct wet_compositor { }; static FILE *weston_logfile = NULL; +static struct weston_debug_scope *log_scope; static int cached_tm_mday = -1; @@ -113,9 +114,16 @@ static int weston_log_timestamp(void) static void custom_handler(const char *fmt, va_list arg) { + char timestr[128]; + weston_log_timestamp(); fprintf(weston_logfile, "libwayland: "); vfprintf(weston_logfile, fmt, arg); + + weston_debug_scope_printf(log_scope, "%s libwayland: ", + weston_debug_scope_timestamp(log_scope, + timestr, sizeof timestr)); + weston_debug_scope_vprintf(log_scope, fmt, arg); } static void @@ -147,6 +155,14 @@ static int vlog(const char *fmt, va_list ap) { int l; + char timestr[128]; + + if (weston_debug_scope_is_enabled(log_scope)) { + weston_debug_scope_printf(log_scope, "%s ", + weston_debug_scope_timestamp(log_scope, + timestr, sizeof timestr)); + weston_debug_scope_vprintf(log_scope, fmt, ap); + } l = weston_log_timestamp(); l += vfprintf(weston_logfile, fmt, ap); @@ -157,6 +173,8 @@ vlog(const char *fmt, va_list ap) static int vlog_continue(const char *fmt, va_list argp) { + weston_debug_scope_vprintf(log_scope, fmt, argp); + return vfprintf(weston_logfile, fmt, argp); } @@ -646,6 +664,9 @@ static int on_term_signal(int signal_number, void *data) static void on_caught_signal(int s, siginfo_t *siginfo, void *context) { + /* Leak it, try to avoid more fallout. */ + log_scope = NULL; + /* This signal handler will do a best-effort backtrace, and * then call the backend restore function, which will switch * back to the vt we launched from or ungrab X etc and then @@ -1874,6 +1895,9 @@ int main(int argc, char *argv[]) goto out; } + log_scope = weston_compositor_add_debug_scope(ec, "log", + "Weston and Wayland log\n", NULL, NULL); + if (debug_protocol) weston_compositor_enable_debug_protocol(ec); @@ -1985,6 +2009,7 @@ out: /* free(NULL) is valid, and it won't be NULL if it's used */ free(user_data.parsed_options); + weston_debug_scope_destroy(log_scope); weston_compositor_destroy(ec); out_signals: -- 2.7.4 _______________________________________________ wayland-devel mailing list wayland-devel@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/wayland-devel