aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMatthew Wild <mwild1@gmail.com>2008-11-27 03:06:29 +0000
committerMatthew Wild <mwild1@gmail.com>2008-11-27 03:06:29 +0000
commitd70ee791d524173cd0c203f8c9fbfabeb5fd9816 (patch)
treeb31f92f44fbdd0fc426f584e2b44e1b6ea737645
parent576e14b6f7ae13e6c409065112c4610a27cb89bb (diff)
downloadprosody-d70ee791d524173cd0c203f8c9fbfabeb5fd9816.tar.gz
prosody-d70ee791d524173cd0c203f8c9fbfabeb5fd9816.zip
Nice enhancement for logging output
-rw-r--r--util/logger.lua12
1 files changed, 9 insertions, 3 deletions
diff --git a/util/logger.lua b/util/logger.lua
index e9440a04..24950400 100644
--- a/util/logger.lua
+++ b/util/logger.lua
@@ -1,8 +1,10 @@
-local format = string.format;
+local format, rep = string.format, string.rep;
+local io_write = io.write;
local print = print;
local debug = debug;
local tostring = tostring;
+local math_max = math.max;
local getstyle, getstring = require "util.termcolours".getstyle, require "util.termcolours".getstring;
local do_pretty_printing = not os.getenv("WINDIR");
@@ -18,17 +20,21 @@ if do_pretty_printing then
logstyles["error"] = getstyle("bold", "red");
end
+local sourcewidth = 20;
+
function init(name)
--name = nil; -- While this line is not commented, will automatically fill in file/line number info
+ sourcewidth = math_max(#name+2, sourcewidth);
+ local namelen = #name;
return function (level, message, ...)
if not name then
local inf = debug.getinfo(3, 'Snl');
level = level .. ","..tostring(inf.short_src):match("[^/]*$")..":"..inf.currentline;
end
if ... then
- print(name, getstring(logstyles[level], level), format(message, ...));
+ io_write(name, rep(" ", sourcewidth-namelen), getstring(logstyles[level], level), "\t", format(message, ...), "\n");
else
- print(name, getstring(logstyles[level], level), message);
+ io_write(name, rep(" ", sourcewidth-namelen), getstring(logstyles[level], level), "\t", message, "\n");
end
end
end