# HG changeset patch
# User Kim Alvefur <zash@zash.se>
# Date 1624975677 -7200
# Node ID f534eeee1552a000e49482b5315b823ea3490a22
# Parent  7f2dee4249aaa841a185255a48541e5e4c1e1cf1
core.loggingmanager: Pretty-print logged XML snippets in console

This replaces an earlier method in a private extension that logged
pretty-printed XML, which broke due to the escaping added in util.format

diff -r 7f2dee4249aa -r f534eeee1552 core/loggingmanager.lua
--- a/core/loggingmanager.lua	Tue Jun 29 16:06:54 2021 +0200
+++ b/core/loggingmanager.lua	Tue Jun 29 16:07:57 2021 +0200
@@ -14,6 +14,7 @@
 local math_max, rep = math.max, string.rep;
 local os_date = os.date;
 local getstyle, getstring = require "util.termcolours".getstyle, require "util.termcolours".getstring;
+local st = require "util.stanza";
 
 local config = require "core.configmanager";
 local logger = require "util.logger";
@@ -214,20 +215,23 @@
 
 local do_pretty_printing = true;
 
-local logstyles;
+local logstyles, pretty;
 if do_pretty_printing then
 	logstyles = {};
 	logstyles["info"] = getstyle("bold");
 	logstyles["warn"] = getstyle("bold", "yellow");
 	logstyles["error"] = getstyle("bold", "red");
+
+	pretty = st.pretty_print;
 end
 
 local function log_to_console(sink_config)
 	-- Really if we don't want pretty colours then just use plain stdout
+	if not do_pretty_printing then
+		return log_to_stdout(sink_config);
+	end
+	sink_config.filter = pretty;
 	local logstdout = log_to_stdout(sink_config);
-	if not do_pretty_printing then
-		return logstdout;
-	end
 	return function (name, level, message, ...)
 		local logstyle = logstyles[level];
 		if logstyle then