56 lines
No EOL
1.4 KiB
Lua
56 lines
No EOL
1.4 KiB
Lua
-- Simple logger for use in any projects
|
|
|
|
local logger = {}
|
|
logger.new = function(monitor_wrap)
|
|
local self = {}
|
|
|
|
local monitor = monitor_wrap
|
|
local log_colours = {
|
|
['log'] = colours.white,
|
|
['info'] = colours.lightBlue,
|
|
['warn'] = colours.yellow,
|
|
['err'] = colours.red,
|
|
['success'] = colours.lime
|
|
}
|
|
|
|
local function move_line()
|
|
monitor.setCursorPos(1, select(2, monitor.getCursorPos()) + 1)
|
|
if select(2, monitor.getCursorPos()) >= select(2, monitor.getSize()) then
|
|
monitor.scroll(1)
|
|
monitor.setCursorPos(1, select(2, monitor.getCursorPos()) - 1)
|
|
end
|
|
end
|
|
|
|
local function write_msg(message, msg_colour)
|
|
local time_str = os.date('%Y-%b-%d %H:%M:%S')
|
|
local msg_formatted = "[" .. time_str .. "] " .. message
|
|
|
|
monitor.setTextColour(msg_colour)
|
|
monitor.write(msg_formatted)
|
|
move_line()
|
|
end
|
|
|
|
function self.log(msg)
|
|
write_msg(msg, log_colours['log'])
|
|
end
|
|
|
|
function self.info(msg)
|
|
write_msg('INFO: ' .. msg, log_colours['info'])
|
|
end
|
|
|
|
function self.warning(msg)
|
|
write_msg('WARNING: ' .. msg, log_colours['warn'])
|
|
end
|
|
|
|
function self.error(msg)
|
|
write_msg('ERROR: ' .. msg, log_colours['err'])
|
|
end
|
|
|
|
function self.success(msg)
|
|
write_msg('SUCCESS: ' .. msg, log_colours['success'])
|
|
end
|
|
|
|
return self
|
|
end
|
|
|
|
return logger |