--[[

ESTE MODULO ES UTILIZADO PARA EL CASO DE LA PM-CLI Y PROVISIONINGMANAGER
YA QUE ESTOS NO TIENEN UNA INSTANCIA DE LA LIBBLOGGER.

PARA EL CASO CUANDO LA ROCKA SE INSTANCIA DESDE EL AGENT, AHI SE UTILIZA LA LIBBLOGER.

]]--

local m_enabledLogger = false
function SetEnabledLogger (enabled)
	m_enabledLogger = enabled
end

local function LogArgumentsFormatter (...)
	local args = {...}
	for i=1, select("#", ...) do
		local arg = args[i]
		local arg_type = type(arg)
		if arg_type ~= "string" and arg_type ~= "number" then
			args[i] = tostring(arg)
		end
	end
	return unpack(args)
end

LogDebug = LogDebug or function (fmt, ...)
	if not m_enabledLogger then
		return
	end
	local msg = string.format(fmt, LogArgumentsFormatter(...))
	print("[DEBUG] " .. msg)
end

LogInfo = LogInfo or function (fmt, ...)
	if not m_enabledLogger then
		return
	end
	local msg = string.format(fmt, LogArgumentsFormatter(...))
	print("[INFO ] " .. msg)
end

LogWarning = LogWarning or function (fmt, ...)
	if not m_enabledLogger then
		return
	end
	local msg = string.format(fmt, LogArgumentsFormatter(...))
	print("[WARN ] " .. msg)
end

LogError = LogError or function (fmt, ...)
	if not m_enabledLogger then
		return
	end
	local msg = string.format(fmt, LogArgumentsFormatter(...))
	print("[ERROR] " .. msg)
end

LogFatal = LogFatal or function (fmt, ...)
	if not m_enabledLogger then
		return
	end
	local msg = string.format(fmt, LogArgumentsFormatter(...))
	print("[FATAL] " .. msg)
end
