Files
tianrunCRM/Assets/trCRM/upgradeRes4Dev/priority/lua/toolkit/CLLPrintEx.lua
2020-07-04 14:41:25 +08:00

108 lines
2.7 KiB
Lua
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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