--[[ {OUTPUT_LICENSE_SHORT} --]] Command.Logger = { Level = { Debug = 0, Normal = 1, Warning = 2, Error = 3 }, Settings = { Debug = false, Format = "%s%s: %s", Prefix = { Main = "\124cff00FF00[Command]\124r", Debug = " \124cffBBBBFFDebug\124r", Normal = "", Warning = " \124cffFFFF00Warning\124r", Error = " \124cffFF0000ERROR\124r" } } } local Logger = Command.Logger ------------------------ -- MAIN LOGGER MODULE -- ------------------------ function Logger:Print(msg, level) local prefix if level == self.Level.Debug then if not self.Settings.Debug then return end prefix = self.Settings.Prefix.Debug elseif level == self.Level.Normal then prefix = self.Settings.Prefix.Normal elseif level == self.Level.Warning then prefix = self.Settings.Prefix.Warning elseif level == self.Level.Error then prefix = self.Settings.Prefix.Error else error(("Undefined logger level passed (%q)"):format(tostring(level))) return end DEFAULT_CHAT_FRAME:AddMessage(self.Settings.Format:format(self.Settings.Prefix.Main, prefix, msg)) end function Logger:Debug(msg) self:Print(msg, self.Level.Debug) end function Logger:Normal(msg) self:Print(msg, self.Level.Normal) end function Logger:Warning(msg) self:Print(msg, self.Level.Warning) end function Logger:Error(msg) self:Print(msg, self.Level.Error) end function Logger:SetDebug(enabled) self.Settings.Debug = enabled end function Logger:EnableDebug() self:SetDebug(true) end function Logger:DisableDebug() self:SetDebug(false) end function Logger:ToggleDebug() self:SetDebug(not self.Settings.Debug) end