# HG changeset patch # User Matthew Wild # Date 1259447060 0 # Node ID 93970910d064d9bbbd8dea5f31a00d775fc33861 # Parent 0ef21511c7ffe010eca2921a57b6a0b5dcd8c7a4 util.logger: Friendlier string.format to automatically tostring() arguments diff -r 0ef21511c7ff -r 93970910d064 libs/logger.lua --- a/libs/logger.lua Sat Nov 28 22:22:51 2009 +0000 +++ b/libs/logger.lua Sat Nov 28 22:24:20 2009 +0000 @@ -1,9 +1,21 @@ local print = print +local select, tostring = select, tostring; module "logger" +local function format(format, ...) + local n, maxn = 0, #arg; + return (format:gsub("%%(.)", function (c) if c ~= "%" and n <= maxn then n = n + 1; return tostring(arg[n]); end end)); +end + +local function format(format, ...) + local n, maxn = 0, select('#', ...); + local arg = { ... }; + return (format:gsub("%%(.)", function (c) if n <= maxn then n = n + 1; return tostring(arg[n]); end end)); +end + function init(name) - return function (level, message) - print(level, message); + return function (level, message, ...) + print(level, format(message, ...)); end end