--[[
Author: Jarth
Filename: CBs_Logging.lua
]] --
-------------------------------------------------------------------------------------------------
-- VARIABLES --
-------------------------------------------------------------------------------------------------
local base = CollectionBars
local loggers = base.Loggers
local texts = base.Texts

-------------------------------------------------------------------------------------------------
-- FUNCTIONS --
-------------------------------------------------------------------------------------------------
function base:InitializeLog(...)
	if LibDebugLogger ~= nil and loggers.Logger == nil then
		loggers.Logger = LibDebugLogger(base.Addon.Name)
		loggers.Debug = loggers.Logger:Create("debug")
		loggers.Verbose = loggers.Logger:Create("verbose")
		base:Info(...)
		base:SetLogsEnabled()
	end
end

function base:SetLogsEnabled()
	if base.Saved then
		base:LogSetEnabled(loggers.Logger, base.Saved and base.Saved.Logging.Info, "Logging")
		base:LogSetEnabled(loggers.Debug, base.Saved and base.Saved.Logging.Debug, "Logging debug")
		base:LogSetEnabled(loggers.Verbose, base.Saved and base.Saved.Logging.Verbose, "Logging verbose")
	end
end

function base:LogSetEnabled(logger, doLogging, loggerType)
	if logger ~= nil then
		logger:SetEnabled(doLogging)
		logger:Info("LogSetEnabled:", loggerType, doLogging)
		return true
	end
end

function base:Info(...)
	if loggers.Logger ~= nil and ... ~= nil then
		loggers.Logger:Info(...)
	end
end

function base:Debug(...)
	if loggers.Debug ~= nil and ... ~= nil then
		loggers.Debug:Debug(...)
	end
end

function base:Verbose(...)
	if loggers.Verbose ~= nil and ... ~= nil then
		loggers.Verbose:Verbose(...)
	end
end