--[[ * Copyright (c) 2011-2012 by Adam Hellberg. * * This file is part of Command. * * Command is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * Command is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with Command. If not, see <http://www.gnu.org/licenses/>. --]] -- Upvalues local tostring = tostring local C = Command --- Table containing all Logger methods. -- This is referenced "Logger" in Logger.lua. -- @name Command.Logger -- @class table -- @field Level Table containing all logger levels. -- @field Settings Table containing all settings specific to Logger. -- C.Logger = { Level = { Debug = 0, Normal = 1, Warning = 2, Error = 3 }, Settings = { Debug = false, Format = "%s%s: %s", } } local Logger = C.Logger local L = C.LocaleManager ------------------------ -- MAIN LOGGER MODULE -- ------------------------ --- Print a log message at the specified level. -- @param msg Message to pring. -- @param level One of the levels defined in Logger.Level. -- function Logger:Print(msg, level) local prefix if level == self.Level.Debug then if not self.Settings.Debug then return end prefix = L("LOGGER_PREFIX_DEBUG") elseif level == self.Level.Normal then prefix = L("LOGGER_PREFIX_NORMAL") elseif level == self.Level.Warning then prefix = L("LOGGER_PREFIX_WARNING") elseif level == self.Level.Error then prefix = L("LOGGER_PREFIX_ERROR") else error(L("LOGGER_ERR_UNDEFINED"):format(tostring(level))) return end DEFAULT_CHAT_FRAME:AddMessage(self.Settings.Format:format(L("LOGGER_PREFIX_MAIN"):format(C.Name), prefix, msg)) end --- Print a debug message. -- @param msg Message to print. -- function Logger:Debug(msg) self:Print(msg, self.Level.Debug) end --- Print a normal message -- @param msg Message to print. -- function Logger:Normal(msg) self:Print(msg, self.Level.Normal) end --- Print a warning message. -- @param msg Message to pring. -- function Logger:Warning(msg) self:Print(msg, self.Level.Warning) end --- Print an error message. -- @param msg Message to print. -- function Logger:Error(msg) self:Print(msg, self.Level.Error) end --- Control the debug state. -- Setting debugging to enabled will enable debug messages to be printed. -- @param enabled Boolean indicating enabled or disabled state. -- function Logger:SetDebug(enabled) self.Settings.Debug = enabled end --- Enable debugging. -- function Logger:EnableDebug() self:SetDebug(true) end --- Disable debugging. -- function Logger:DisableDebug() self:SetDebug(false) end --- Toggle debugging. -- function Logger:ToggleDebug() self:SetDebug(not self.Settings.Debug) end