1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
|
local brave = require 'brave'
local time = require 'bee.time'
local tablePack = table.pack
local tostring = tostring
local tableConcat = table.concat
local debugTraceBack = debug.traceback
local debugGetInfo = debug.getinfo
local monotonic = time.monotonic
_ENV = nil
local function pushLog(level, ...)
local t = tablePack(...)
for i = 1, t.n do
t[i] = tostring(t[i])
end
local str = tableConcat(t, '\t', 1, t.n)
if level == 'error' then
str = str .. '\n' .. debugTraceBack(nil, 3)
end
local info = debugGetInfo(3, 'Sl')
brave.push('log', {
level = level,
msg = str,
src = info.source,
line = info.currentline,
clock = monotonic(),
})
return str
end
local m = {}
function m.info(...)
pushLog('info', ...)
end
function m.debug(...)
pushLog('debug', ...)
end
function m.trace(...)
pushLog('trace', ...)
end
function m.warn(...)
pushLog('warn', ...)
end
function m.error(...)
pushLog('error', ...)
end
return m
|