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
|
import sys
class Logger(object):
Levels = ["none", "error", "warning", "info", "debug"]
Format = "[{module}][{level}] {msg}\n"
def __init__(self):
self.output = sys.stdout
self.level = 0
def new_module(self, module):
return LoggerModule(self, module)
def set_level(self, level):
try:
index = Logger.Levels.index(level)
except ValueError:
return
self.level = index
def set_output(self, output):
self.output = output
def msg(self, module, level, msg, *args):
if self.level < level or level > len(Logger.Levels):
return
msg = msg.format(*args)
self.output.write(Logger.Format.format(module=module,
level=Logger.Levels[level],
msg=msg))
self.output.flush()
class LoggerModule(object):
def __init__(self, manager, module):
self.manager = manager
self.module = module
def error(self, msg, *args):
self.manager.msg(self.module, 1, msg, *args)
def warning(self, msg, *args):
self.manager.msg(self.module, 2, msg, *args)
def info(self, msg, *args):
self.manager.msg(self.module, 3, msg, *args)
def debug(self, msg, *args):
self.manager.msg(self.module, 4, msg, *args)
__all__ = ["Logger"]
|