1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24 from __future__ import print_function
25 from builtins import object
26 from fife import fife
27
29 """
30 Log manager provides convenient apis to access engine logging functionality.
31 You can set log targets individually (prompt, file). You can also adjust
32 things like visible modules through log manager.
33 """
34
35 - def __init__(self, engine, promptlog=True, filelog=False):
36 """
37 Constructs new log manager
38 @param engine: Engine to hook into
39 @param promptlog: If true, logs to prompt
40 @param filelog: If true, logs to file (fife.log)
41 """
42 self.engine = engine
43 self.lm = engine.getLogManager()
44 self.lm.setLogToPrompt(promptlog)
45 self.lm.setLogToFile(filelog)
46 self.mod2name = {}
47 for k, v in list(fife.__dict__.items()):
48 if k.startswith('LM_') and k not in ('LM_CORE', 'LM_MODULE_MAX'):
49 self.mod2name[v] = self.lm.getModuleName(v)
50 self.name2mod = dict([(v.lower(), k) for k, v in list(self.mod2name.items())])
51
53 """
54 Adds modules that are visible in logs. By default, all modules
55 are disabled. Does not remove previously visible modules
56 @param names: module names to set visible
57 @see: modules.h file for available modules in the engine
58 """
59 names = [n.lower() for n in names]
60 if 'all' in names:
61 for k in list(self.mod2name.keys()):
62 self.lm.addVisibleModule(k)
63 else:
64 for m in names:
65 try:
66 self.lm.addVisibleModule(self.name2mod[m])
67 except KeyError:
68 print('Tried to enable non-existing log module "%s"' % m)
69
71 """
72 Removes modules that are visible in logs. By default, all modules
73 are disabled.
74 @param names: module names to set invisible
75 @see: addVisibleModules
76 """
77 names = [n.lower() for n in names]
78 if 'all' in names:
79 for k in list(self.mod2name.keys()):
80 self.lm.removeVisibleModule(k)
81 else:
82 for m in names:
83 self.lm.removeVisibleModule(self.name2mod[m])
84
86 """
87 Gets currently visible modules
88 @see: addVisibleModules
89 """
90 mods = []
91 for k in list(self.mod2name.keys()):
92 if self.lm.isVisible(k):
93 mods.append(self.mod2name[k])
94
96 """
97 Sets visible modules. Clears previously set modules.
98 @param names: module names to set visible
99 @see: addVisibleModules
100 """
101 self.lm.clearVisibleModules()
102 self.addVisibleModules(*names)
103
105 """
106 Sets the minimum log level to view.
107
108 @param fltr: The filter level
109
110 Valid values:
111 - L{fife.LogManager.LEVEL_DEBUG}
112 - L{fife.LogManager.LEVEL_LOG}
113 - L{fife.LogManager.LEVEL_WARN}
114 - L{fife.LogManager.LEVEL_ERROR}
115 """
116 self.lm.setLevelFilter(fltr)
117
120
123
124 logToPrompt = property(getLogToPrompt, setLogToPrompt)
125
128
131
132 logToFile = property(getLogToFile, setLogToFile)
133
135 self.lm.log(0, self.name2mod["script"], message)
136
138 self.lm.log(1, self.name2mod["script"], message)
139
141 self.lm.log(2, self.name2mod["script"], message)
142
144 self.lm.log(3, self.name2mod["script"], message)
145