From b6ca62465de25fd4f0b5c42ae95c1f379634d2ac Mon Sep 17 00:00:00 2001 From: crater2150 Date: Mon, 15 Apr 2013 14:27:38 +0200 Subject: [PATCH] created logging module --- rc.lua | 7 +++++ simplelog.lua | 81 +++++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 88 insertions(+) create mode 100644 simplelog.lua diff --git a/rc.lua b/rc.lua index 3183d93..c2573cf 100644 --- a/rc.lua +++ b/rc.lua @@ -11,6 +11,13 @@ conf = require("localconf") layouts = require('layouts') +-- {{{ Logging +log = require("simplelog") +log.add_logger(log.loggers.stdio, 0) +log.add_logger(log.loggers.naughty, 2) + +-- }}} + -- {{{ Tags tags = require('tags') diff --git a/simplelog.lua b/simplelog.lua new file mode 100644 index 0000000..6526689 --- /dev/null +++ b/simplelog.lua @@ -0,0 +1,81 @@ +local naughty = require("naughty") + +local simplelog = { loggers = {}, mt = {}} + +local defaults = {} +local settings = {} + +defaults.loggers = { } +defaults.defaultlevel = 0 + +for key, value in pairs(defaults) do + settings[key] = value +end + +level = { + ERROR = 3, + WARNING = 2, + NORMAL = 1, + DEBUG = 0 +} +simplelog.level = level + +function loglv(msg, level) + for _,logger in ipairs(settings.loggers) do + logger(msg, level) + end +end + +function debug(msg) + loglv(msg, 0) +end +simplelog.debug = debug + +function log(msg) + loglv(msg, 1) +end +simplelog.log = log + +function warn(msg) + loglv(msg, 2) +end +simplelog.warn = warn + +function error(msg) + loglv(msg, 3) +end +simplelog.error = error + +function add_logger(logger, level) + if level == nil then + level = settings.defaultlevel + end + print(inspect(logger)) + table.insert(settings.loggers, function(msg, severity) + if severity >= level then + logger(msg, severity) + end + end) + print(inspect(settings.loggers)) +end +simplelog.add_logger = add_logger + +function logger_naughty(msg, severity) + if severity == level.WARNING then + msg = "".. msg .. "" + elseif severity == level.ERROR then + msg = "".. msg .. "" + end + naughty.notify({ text = msg }) +end +simplelog.loggers.naughty = logger_naughty + + +function logger_print(msg, severity) + print(msg) +end +simplelog.loggers.stdio = logger_print + +simplelog.mt.__call = log + +return setmetatable(simplelog, simplelog.mt)