Files
tianrunCRM/Assets/trCRM/upgradeRes4Dev/priority/lua/toolkit/CLLPrintEx.lua

108 lines
2.7 KiB
Lua
Raw Normal View History

2020-07-04 14:41:25 +08:00
LogLev = {
error = 1,
warning = 2,
debug = 3,
}
local logLev = LogLev.debug
local logBackTraceLev = -1
local select = select
local table = table
local smatch = string.match
local sfind = string.find
---@public 设置日志等级分别是debugwarningerror
function setLogLev(val)
logLev = val or LogLev.debug
end
---@public 设置日志的调用栈信息
function setLogBackTraceLev(lev)
logBackTraceLev = lev
if logBackTraceLev > 0 and logBackTraceLev < 3 then
logBackTraceLev = 3
end
end
local strSplit = function(inputstr, sep)
if sep == nil then
sep = "%s"
end
local t = {};
local i = 1
for str in string.gmatch(inputstr, "([^" .. sep .. "]+)") do
t[i] = str
i = i + 1
end
return t;
end
local trim = function(s)
-- return (s:gsub("^%s*(.-)%s*$", "%1"))
return smatch(s, '^()%s*$') and '' or smatch(s, '^%s*(.*%S)') -- 性能略优
end
local parseBackTrace = function(traceInfor, level)
if traceInfor and level > 1 then
local traces = strSplit(traceInfor, "\n")
if #traces >= level then
local str = trim(traces[level])
local sList = strSplit(str, ":")
local file = sList[1]
local line = sList[2]
local func = sList[3] or ""
--file = string.match(file, "/%a+%.%a+") or ""
func = string.match(func, "'%a+'") or ""
return file .. ":" .. line .. ":" .. func
end
else
return traceInfor or ""
end
end
local wrapMsg = function (...)
local tb = {}
local v
for i = 1, select("#", ...) do
v = select(i, ...)
if v or type(v) == "boolean" then
table.insert(tb, tostring(v))
else
table.insert(tb, "nil")
end
end
return table.concat(tb, "|")
end
local luaprint = print
function print(...)
if logLev < LogLev.debug then
return
end
local trace = debug.traceback("")
local msg = wrapMsg(...)
msg = msg or ""
luaprint("[debug]:" .. msg .. "\n" .. parseBackTrace(trace, logBackTraceLev))
end
function printw(...)
if logLev < LogLev.warning then
return
end
local trace = debug.traceback("")
local msg = wrapMsg(...)
msg = msg or ""
Utl.printw("[warn]:" .. msg .. "\n" .. parseBackTrace(trace, logBackTraceLev))
end
function printe(...)
if logLev < LogLev.error then
return
end
local trace = debug.traceback("")
local msg = wrapMsg(...)
msg = msg or ""
Utl.printe("[err]:" .. msg .. "\n" .. parseBackTrace(trace, logBackTraceLev))
end