Changeset

11643:f534eeee1552

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
author Kim Alvefur <zash@zash.se>
date Tue, 29 Jun 2021 16:07:57 +0200
parents 11642:7f2dee4249aa
children 11644:fc1b8fe94d04
files core/loggingmanager.lua
diffstat 1 files changed, 8 insertions(+), 4 deletions(-) [+]
line wrap: on
line diff
--- 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