# HG changeset patch # User Matthew Wild # Date 1322434799 0 # Node ID 931bf313c69180430f2814d5c9188cd28c892e1b # Parent e27bf761bea6e73cab89a3c3c8e8d8904629a553 verse: Format messages before passing them to custom log handler diff -r e27bf761bea6 -r 931bf313c691 init.lua --- a/init.lua Sun Nov 27 22:50:21 2011 +0000 +++ b/init.lua Sun Nov 27 22:59:59 2011 +0000 @@ -37,12 +37,20 @@ verse.new_logger = logger.init; verse.log = verse.logger("verse"); +local function format(format, ...) + local n, arg, maxn = 0, { ... }, select('#', ...); + return (format:gsub("%%(.)", function (c) if n <= maxn then n = n + 1; return tostring(arg[n]); end end)); +end + function verse.set_log_handler(log_handler, levels) levels = levels or { "debug", "info", "warn", "error" }; logger.reset(); + local function _log_handler(name, level, message, ...) + return log_handler(name, level, format(message, ...)); + end if log_handler then for i, level in ipairs(levels) do - logger.add_level_sink(level, log_handler); + logger.add_level_sink(level, _log_handler); end end end