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)