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