awesomewm/simplelog.lua

78 lines
1.4 KiB
Lua
Raw Normal View History

2013-04-15 12:27:38 +00:00
local naughty = require("naughty")
2015-05-24 21:47:19 +00:00
local awful = require("awful")
2013-04-15 12:27:38 +00:00
local simplelog = { loggers = {}, mt = {}}
local defaults = {}
local settings = {}
defaults.loggers = { }
defaults.defaultlevel = 0
for key, value in pairs(defaults) do
settings[key] = value
end
2015-05-24 21:47:19 +00:00
simplelog.level = {
2013-04-15 12:27:38 +00:00
ERROR = 3,
WARNING = 2,
NORMAL = 1,
DEBUG = 0
}
2014-04-25 13:14:42 +00:00
local function loglv(msg, level)
2013-04-15 12:27:38 +00:00
for _,logger in ipairs(settings.loggers) do
logger(msg, level)
end
end
2014-04-25 13:14:42 +00:00
function simplelog.dbg(msg)
2013-04-15 12:27:38 +00:00
loglv(msg, 0)
end
2014-04-25 13:14:42 +00:00
function simplelog.log(msg)
2013-04-15 12:27:38 +00:00
loglv(msg, 1)
end
2014-04-25 13:14:42 +00:00
function simplelog.warn(msg)
2013-04-15 12:27:38 +00:00
loglv(msg, 2)
end
2014-04-25 13:14:42 +00:00
function simplelog.error(msg)
2013-04-15 12:27:38 +00:00
loglv(msg, 3)
end
2014-04-25 13:14:42 +00:00
function simplelog.add_logger(logger, level)
2013-04-15 12:27:38 +00:00
if level == nil then
level = settings.defaultlevel
end
table.insert(settings.loggers, function(msg, severity)
if severity >= level then
logger(msg, severity)
end
end)
end
2014-04-25 13:14:42 +00:00
function simplelog.loggers.naughty(msg, severity)
2015-05-24 21:47:19 +00:00
if severity == simplelog.level.WARNING then
2013-04-15 12:27:38 +00:00
msg = "<span color=\"#ff6\">".. msg .. "</span>"
2015-05-24 21:47:19 +00:00
elseif severity == simplelog.level.ERROR then
2013-04-15 12:27:38 +00:00
msg = "<span color=\"#f66\">".. msg .. "</span>"
end
naughty.notify({ text = msg })
end
2015-05-24 21:47:19 +00:00
function simplelog.spawn(command)
simplelog.dbg("Executing: " .. command)
awful.util.spawn(command)
end
2014-04-25 13:14:42 +00:00
function simplelog.loggers.stdio(msg, severity)
2013-04-15 12:27:38 +00:00
print(msg)
end
2015-05-24 21:47:19 +00:00
simplelog.mt.__call = function(t,message) simplelog.log(message) end
2013-04-15 12:27:38 +00:00
return setmetatable(simplelog, simplelog.mt)