util.logger: New method 'add_simple_sink', logger.add_simple_sink(print) works
authorMatthew Wild <mwild1@gmail.com>
Tue, 27 Feb 2018 16:02:25 +0000
changeset 8556 32438665dc5e
parent 8555 1fcefc16a55d
child 8557 12a68e0d0ecf
util.logger: New method 'add_simple_sink', logger.add_simple_sink(print) works
util/logger.lua
--- a/util/logger.lua	Mon Feb 26 18:31:27 2018 +0100
+++ b/util/logger.lua	Tue Feb 27 16:02:25 2018 +0000
@@ -67,10 +67,21 @@
 	end
 end
 
+local function add_simple_sink(simple_sink_function, levels)
+	local format = require "util.format".format;
+	local function sink_function(name, level, msg, ...)
+		return simple_sink_function(name, level, format(msg, ...));
+	end
+	for _, level in ipairs(levels or {"debug", "info", "warn", "error"}) do
+		add_level_sink(level, sink_function);
+	end
+end
+
 return {
 	init = init;
 	make_logger = make_logger;
 	reset = reset;
 	add_level_sink = add_level_sink;
+	add_simple_sink = add_simple_sink;
 	new = make_logger;
 };