Compare commits

...

2 Commits

Author SHA1 Message Date
DanyLE
32577500de improve log function
All checks were successful
gitea-sync/silk/pipeline/head This commit looks good
2023-07-07 20:01:59 +02:00
DanyLE
7dcfa9c8f0 fix JSON encode bug + improve logging function 2023-07-07 19:51:33 +02:00
2 changed files with 22 additions and 8 deletions

View File

@ -126,17 +126,28 @@ function loadscript(file, args)
end
end
-- logging helpers
local __MSG = function(fmt,...)
local va = {...}
local log_msg = fmt
local ret,msg = pcall(function() return string.format(fmt, table.unpack(va)) end)
if ret then
log_msg = msg
else
log_msg = string.format("Error processing format string [%s]: %s", fmt, msg)
end
return log_msg
end
function LOG_INFO(fmt, ...)
fcgio:log_info(string.format(fmt or "LOG", ...))
fcgio:log_info(__MSG(fmt or "INFO",table.unpack({...})))
end
function LOG_ERROR(fmt, ...)
fcgio:log_error(string.format(fmt or "ERROR", ...))
fcgio:log_error(__MSG(fmt or "ERROR",table.unpack({...})))
end
function LOG_DEBUG(fmt, ...)
fcgio:log_debug(string.format(fmt or "ERROR", ...))
fcgio:log_debug(__MSG(fmt or "DEBUG",table.unpack({...})))
end
function LOG_WARN(fmt, ...)

View File

@ -20,7 +20,7 @@ function utils.is_array(table)
return true
end
function utils.escape(s)
function utils.escape(s, ignore_percent)
local replacements = {
["\\"] = "\\\\",
['"'] = '\\"',
@ -28,9 +28,11 @@ function utils.escape(s)
["\t"] = "\\t",
["\b"] = "\\b",
["\f"] = "\\f",
["\r"] = "\\r",
["%"] = "%%"
["\r"] = "\\r"
}
if not ignore_percent then
replacements["%"] = "%%"
end
return (s:gsub("[\\'\"\n\t\b\f\r%%]", replacements))
end
@ -194,7 +196,8 @@ function JSON.encode(obj)
end
elseif t == 'string' then
-- print('"'..utils.escape(obj)..'"')
return '"' .. utils.escape(obj) .. '"'
-- ignore % escape as this is for a LUA using
return '"' .. utils.escape(obj, true) .. '"'
elseif t == 'boolean' or t == 'number' then
return tostring(obj)
elseif obj == nil then