An example of usage is the following
local Logger = require("objects/logger")
logger = Logger:new(Logger.ERROR())
logger:debug("%s %d", "this is a debug", 1)
logger:error("%s %d", "this is an error", 2)
logger:setLogLevel(Logger.DEBUG())
logger:debug("%s %d", "Notice how you couldn't see the other debug?", 1)