@@ -22,23 +22,28 @@ return tostring(arg) .. ' ' .. argjoin(nxt, ...) end local logger = function(module) - local emit = function(lvl) - return function(...) - if module then - minetest.log(lvl,string.format('[%s :: %s] %s',selfname,module,argjoin(...))) - else - minetest.log(lvl,string.format('[%s] %s',selfname,argjoin(...))) + local lg = {} + local setup = function(fn, lvl) + lvl = lvl or fn + local function emit(...) + local call = (fn == 'fatal') and error + or function(str) minetest.log(lvl, str) end + if module + then call(string.format('[%s :: %s] %s',selfname,module,argjoin(...))) + else call(string.format('[%s] %s',selfname,argjoin(...))) end end + lg[fn ] = function(...) emit(...) end + lg[fn .. 'f'] = function(...) emit(string.format(...)) end -- convenience fn end - return { - info = emit('info'); - warn = emit('warning'); - err = emit('error'); - act = emit('action'); - } + setup('info') + setup('warn','warning') + setup('err','error') + setup('act','action') + setup('fatal') + return lg end; local stage = function(s,...) logger().info('entering stage',s)