From 4bd670e8dbcc9ee806d6bad1455149628fa61be0 Mon Sep 17 00:00:00 2001 From: Sergey Poznyakoff Date: Tue, 22 Mar 2011 18:21:07 +0200 Subject: Use C-escape filter (MU b5c66e41) to format trace output. * src/main.c (mf_trace_stream): New static var. (open_trace_stream): New static function. (trace): Print to mf_trace_stream. --- src/main.c | 25 ++++++++++++++++++++++++- 1 file changed, 24 insertions(+), 1 deletion(-) (limited to 'src/main.c') diff --git a/src/main.c b/src/main.c index 9b7a6b8c..d99183a9 100644 --- a/src/main.c +++ b/src/main.c @@ -111,13 +111,36 @@ pp_define(const char *symbol) /* Logging & debugging */ +static mu_stream_t mf_trace_stream; + +static void +open_trace_stream() +{ + int rc = mu_filter_create(&mf_trace_stream, + mf_strecho, + "C-escape", + MU_FILTER_ENCODE, + MU_STREAM_WRITE); + if (rc) { + mu_error(_("cannot create trace stream, " + "using standard log: %s"), + mu_strerror(rc)); + mf_trace_stream = mf_strecho; + } +} + void trace(const char *fmt, ...) { if (do_trace) { va_list ap; + + if (!mf_trace_stream) + open_trace_stream(); + va_start(ap, fmt); - vlogmsg(MU_LOG_INFO, fmt, ap); + mu_stream_vprintf(mf_trace_stream, fmt, ap); + mu_stream_flush(mf_trace_stream); va_end(ap); } } -- cgit v1.2.1