log.lua
1.32 KB
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
56
57
--[[
@Author : Mr.wang
@Date : 2016-04-21 16:01:17
@Content :
配置输出级别
setLevel(log.xxx)
传入输出流
logout(self, lv, ...)
--]]
local log = setmetatable({}, {__index=_G})
setfenv(1, log)
DEBUG = "DEBUG"
INFO = "INFO"
WARN = "WARN"
ERROR = "ERROR"
FATAL = "FATAL"
NONE = "NONE"
local LEVEL = {
[DEBUG] = 1,
[INFO] = 2,
[WARN] = 3,
[ERROR] = 4,
[FATAL] = 5,
[NONE] = 6,
}
local setLevel_ = function(self, lv)
assert(LEVEL[lv], string.format("undefined level '%s'", tostring(lv)))
self.level = lv
print("self.level:",self.level)
end
local log_ = function(self, lv, ...)
assert(LEVEL[lv], string.format("undefined level '%s'", tostring(lv)))
if LEVEL[lv] < LEVEL[self.level] then
return
end
self:logout(lv, ...)
end
function new(logout)
assert("function"==type(logout), "logout must be a function")
local logger = {level=DEBUG, setLevel=setLevel_, logout=logout}
logger.debug = function(self, ...) return log_(self, DEBUG, ...) end
logger.info = function(self, ...) return log_(self, INFO, ...) end
logger.warn = function(self, ...) return log_(self, WARN, ...) end
logger.error = function(self, ...) return log_(self, ERROR, ...) end
logger.fatal = function(self, ...) return log_(self, FATAL, ...) end
return logger
end
return log