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) |