File

libs/logger.lua @ 93:2442e751f3cb

verse.bosh: Implemented retry/reconnect logic, and handling of disconnects (either CM-intiated or due to connection failures)
author Matthew Wild <mwild1@gmail.com>
date Sun, 08 Aug 2010 01:21:22 +0100
parent 5:93970910d064
child 127:8f831f259cea
line wrap: on
line source

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, format(message, ...));
	end
end

return _M;