Code: Select all
-- writes the given value or table to the rainmeter log
function RmLog(...)
if debug == nil then debug = true end
if printIndent == nil then printIndent = '' end
if type(arg[1]) == 'table' then
if arg[3] == nil then arg[3] = 'Debug' end
if arg[3] == 'Debug' and debug == false then return end
RmLog(printIndent .. arg[2] .. ' = {')
local pI = printIndent
printIndent = printIndent .. ' '
for k,v in pairs(arg[1]) do
if type(v) == 'table' then
RmLog(v, k, arg[3])
else
RmLog(printIndent .. tostring(k) .. ' = ' .. tostring(v), arg[3])
end
end
printIndent = pI
RmLog(printIndent .. '}', arg[3])
else
if arg[2] == nil then arg[2] = 'Debug' end
if arg[2] == 'Debug' and debug == false then return end
SKIN:Bang("!Log", tostring(arg[1]), arg[2])
end
end
Table printing is recursive, so printing a table will also print any subtables.
Usage
Syntax: RmLog(message, type)
message (string): The message to be printed.
type (string): One of type Notice, Warning, Error, or Debug.
Syntax: RmLog(table, tableName, type)
table (table): The table to be printed.
tableName (string): The name of the table.
type (string): One of type Notice, Warning, Error, or Debug.
Example
LUA:
Code: Select all
debug = true
function Initialize()
local i = 0
local s = 'bar'
local b = false
local t = {}
table.insert(t, 'foo')
table.insert(t, 42)
table.insert(t, true)
table.insert(t, { a = 'lorem', b = 'ipsum', c = 'dolor', d = 'sit', e = 'amet' })
RmLog(i, 'Notice')
RmLog(s, 'Warning')
RmLog(b, 'Error')
RmLog(t, 't', 'Debug')
end
function Update() end
-- writes the given value or table to the rainmeter log
function RmLog(...)
if debug == nil then debug = true end
if printIndent == nil then printIndent = '' end
if type(arg[1]) == 'table' then
if arg[3] == nil then arg[3] = 'Debug' end
if arg[3] == 'Debug' and debug == false then return end
RmLog(printIndent .. arg[2] .. ' = {')
local pI = printIndent
printIndent = printIndent .. ' '
for k,v in pairs(arg[1]) do
if type(v) == 'table' then
RmLog(v, k, arg[3])
else
RmLog(printIndent .. tostring(k) .. ' = ' .. tostring(v), arg[3])
end
end
printIndent = pI
RmLog(printIndent .. '}', arg[3])
else
if arg[2] == nil then arg[2] = 'Debug' end
if arg[2] == 'Debug' and debug == false then return end
SKIN:Bang("!Log", tostring(arg[1]), arg[2])
end
end
Code: Select all
NOTE (17:21:54.350) RainmeterSettings\RainmeterSettings.ini: Refreshing skin
NOTE (17:21:54.365) RainmeterSettings\RainmeterSettings.ini: 0
WARN (17:21:54.366) RainmeterSettings\RainmeterSettings.ini: bar
ERRO (17:21:54.367) RainmeterSettings\RainmeterSettings.ini: false
DBUG (17:21:54.368) RainmeterSettings\RainmeterSettings.ini: t = {
DBUG (17:21:54.369) RainmeterSettings\RainmeterSettings.ini: 1 = foo
DBUG (17:21:54.370) RainmeterSettings\RainmeterSettings.ini: 2 = 42
DBUG (17:21:54.371) RainmeterSettings\RainmeterSettings.ini: 3 = true
DBUG (17:21:54.372) RainmeterSettings\RainmeterSettings.ini: 4 = {
DBUG (17:21:54.374) RainmeterSettings\RainmeterSettings.ini: a = lorem
DBUG (17:21:54.375) RainmeterSettings\RainmeterSettings.ini: c = dolor
DBUG (17:21:54.376) RainmeterSettings\RainmeterSettings.ini: b = ipsum
DBUG (17:21:54.377) RainmeterSettings\RainmeterSettings.ini: e = amet
DBUG (17:21:54.379) RainmeterSettings\RainmeterSettings.ini: d = sit
DBUG (17:21:54.382) RainmeterSettings\RainmeterSettings.ini: }
DBUG (17:21:54.383) RainmeterSettings\RainmeterSettings.ini: }