From bfb4514d0fc0aeaacf9f5fb741d67fd36bd2774a Mon Sep 17 00:00:00 2001 From: Kim Alvefur Date: Tue, 29 Jun 2021 16:07:57 +0200 Subject: 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 --- core/loggingmanager.lua | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) (limited to 'core/loggingmanager.lua') diff --git a/core/loggingmanager.lua b/core/loggingmanager.lua index c5b658c8..e4ab32b5 100644 --- a/core/loggingmanager.lua +++ b/core/loggingmanager.lua @@ -14,6 +14,7 @@ local io_open = io.open; 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 @@ log_sink_types.stdout = log_to_stdout; 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 - local logstdout = log_to_stdout(sink_config); if not do_pretty_printing then - return logstdout; + return log_to_stdout(sink_config); end + sink_config.filter = pretty; + local logstdout = log_to_stdout(sink_config); return function (name, level, message, ...) local logstyle = logstyles[level]; if logstyle then -- cgit v1.2.3