mirror of
https://github.com/lxsang/silk.git
synced 2024-12-25 12:38:21 +01:00
fix JSON encode bug + improve logging function
This commit is contained in:
parent
a6838e5294
commit
7dcfa9c8f0
@ -126,17 +126,34 @@ function loadscript(file, args)
|
||||
end
|
||||
end
|
||||
|
||||
-- logging helpers
|
||||
local __MSG = function(fmt,...)
|
||||
local va = {...}
|
||||
if va then
|
||||
local out = {}
|
||||
for i,v in ipairs(va) do
|
||||
local esc = v:gsub("[%%]", {["%"] = "%%"})
|
||||
table.insert(out, esc)
|
||||
end
|
||||
va = out
|
||||
end
|
||||
local log_msg = fmt
|
||||
local ret,msg = pcall(function() return string.format(fmt, table.unpack(va)) end)
|
||||
if msg then
|
||||
log_msg = 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, ...)
|
||||
|
@ -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
|
||||
|
Loading…
Reference in New Issue
Block a user