Software /
code /
verse
Comparison
init.lua @ 241:931bf313c691
verse: Format messages before passing them to custom log handler
author | Matthew Wild <mwild1@gmail.com> |
---|---|
date | Sun, 27 Nov 2011 22:59:59 +0000 |
parent | 240:e27bf761bea6 |
child | 242:ab4773b0ef5e |
comparison
equal
deleted
inserted
replaced
240:e27bf761bea6 | 241:931bf313c691 |
---|---|
35 | 35 |
36 verse.logger = logger.init; -- COMPAT: Deprecated | 36 verse.logger = logger.init; -- COMPAT: Deprecated |
37 verse.new_logger = logger.init; | 37 verse.new_logger = logger.init; |
38 verse.log = verse.logger("verse"); | 38 verse.log = verse.logger("verse"); |
39 | 39 |
40 local function format(format, ...) | |
41 local n, arg, maxn = 0, { ... }, select('#', ...); | |
42 return (format:gsub("%%(.)", function (c) if n <= maxn then n = n + 1; return tostring(arg[n]); end end)); | |
43 end | |
44 | |
40 function verse.set_log_handler(log_handler, levels) | 45 function verse.set_log_handler(log_handler, levels) |
41 levels = levels or { "debug", "info", "warn", "error" }; | 46 levels = levels or { "debug", "info", "warn", "error" }; |
42 logger.reset(); | 47 logger.reset(); |
48 local function _log_handler(name, level, message, ...) | |
49 return log_handler(name, level, format(message, ...)); | |
50 end | |
43 if log_handler then | 51 if log_handler then |
44 for i, level in ipairs(levels) do | 52 for i, level in ipairs(levels) do |
45 logger.add_level_sink(level, log_handler); | 53 logger.add_level_sink(level, _log_handler); |
46 end | 54 end |
47 end | 55 end |
48 end | 56 end |
49 | 57 |
50 local function error_handler(err) | 58 local function error_handler(err) |