Mercurial > fife-parpg
comparison engine/python/fife/extensions/fifelog.py @ 495:ae9f5383f5b1
Added a new log module called Script. This should be used by the python modules.
Did some code cleanup and comment cleanup.
Added some more visible log modules to the shooter demo for fun.
author | prock@33b003aa-7bff-0310-803a-e67f0ece8222 |
---|---|
date | Tue, 11 May 2010 21:30:55 +0000 |
parents | 64738befdf3b |
children | 987307d12235 |
comparison
equal
deleted
inserted
replaced
494:e241d7553496 | 495:ae9f5383f5b1 |
---|---|
1 # -*- coding: utf-8 -*- | 1 # -*- coding: utf-8 -*- |
2 | 2 |
3 # #################################################################### | 3 # #################################################################### |
4 # Copyright (C) 2005-2009 by the FIFE team | 4 # Copyright (C) 2005-2010 by the FIFE team |
5 # http://www.fifengine.de | 5 # http://www.fifengine.net |
6 # This file is part of FIFE. | 6 # This file is part of FIFE. |
7 # | 7 # |
8 # FIFE is free software; you can redistribute it and/or | 8 # FIFE is free software; you can redistribute it and/or |
9 # modify it under the terms of the GNU Lesser General Public | 9 # modify it under the terms of the GNU Lesser General Public |
10 # License as published by the Free Software Foundation; either | 10 # License as published by the Free Software Foundation; either |
22 # #################################################################### | 22 # #################################################################### |
23 | 23 |
24 from fife import fife | 24 from fife import fife |
25 | 25 |
26 class LogManager(object): | 26 class LogManager(object): |
27 ''' | 27 """ |
28 Log manager provides convenient apis to access engine logging functionality. | 28 Log manager provides convenient apis to access engine logging functionality. |
29 You can set log targets individually (prompt, file). You can also adjust | 29 You can set log targets individually (prompt, file). You can also adjust |
30 things like visible modules through log manager. | 30 things like visible modules through log manager. |
31 ''' | 31 """ |
32 | 32 |
33 def __init__(self, engine, promptlog=True, filelog=False): | 33 def __init__(self, engine, promptlog=True, filelog=False): |
34 ''' | 34 """ |
35 Constructs new log manager | 35 Constructs new log manager |
36 @param engine: Engine to hook into | 36 @param engine: Engine to hook into |
37 @param promptlog: If true, logs to prompt | 37 @param promptlog: If true, logs to prompt |
38 @param filelog: If true, logs to file (fife.log) | 38 @param filelog: If true, logs to file (fife.log) |
39 ''' | 39 """ |
40 self.engine = engine | 40 self.engine = engine |
41 self.lm = engine.getLogManager() | 41 self.lm = engine.getLogManager() |
42 self.lm.setLogToPrompt(promptlog) | 42 self.lm.setLogToPrompt(promptlog) |
43 self.lm.setLogToFile(filelog) | 43 self.lm.setLogToFile(filelog) |
44 self.mod2name = {} | 44 self.mod2name = {} |
46 if k.startswith('LM_') and k not in ('LM_CORE', 'LM_MODULE_MAX'): | 46 if k.startswith('LM_') and k not in ('LM_CORE', 'LM_MODULE_MAX'): |
47 self.mod2name[v] = self.lm.getModuleName(v) | 47 self.mod2name[v] = self.lm.getModuleName(v) |
48 self.name2mod = dict([(v.lower(), k) for k, v in self.mod2name.items()]) | 48 self.name2mod = dict([(v.lower(), k) for k, v in self.mod2name.items()]) |
49 | 49 |
50 def addVisibleModules(self, *names): | 50 def addVisibleModules(self, *names): |
51 ''' | 51 """ |
52 Adds modules that are visible in logs. By default, all modules | 52 Adds modules that are visible in logs. By default, all modules |
53 are disabled. Does not remove previously visible modules | 53 are disabled. Does not remove previously visible modules |
54 @param names: module names to set visible | 54 @param names: module names to set visible |
55 @see modules.h file for available modules in the engine | 55 @see: modules.h file for available modules in the engine |
56 ''' | 56 """ |
57 names = [n.lower() for n in names] | 57 names = [n.lower() for n in names] |
58 if 'all' in names: | 58 if 'all' in names: |
59 for k in self.mod2name.keys(): | 59 for k in self.mod2name.keys(): |
60 self.lm.addVisibleModule(k) | 60 self.lm.addVisibleModule(k) |
61 else: | 61 else: |
64 self.lm.addVisibleModule(self.name2mod[m]) | 64 self.lm.addVisibleModule(self.name2mod[m]) |
65 except KeyError: | 65 except KeyError: |
66 print 'Tried to enable non-existing log module "%s"' % m | 66 print 'Tried to enable non-existing log module "%s"' % m |
67 | 67 |
68 def removeVisibleModules(self, *names): | 68 def removeVisibleModules(self, *names): |
69 ''' | 69 """ |
70 Removes modules that are visible in logs. By default, all modules | 70 Removes modules that are visible in logs. By default, all modules |
71 are disabled. | 71 are disabled. |
72 @param names: module names to set invisible | 72 @param names: module names to set invisible |
73 @see addVisibleModules | 73 @see: addVisibleModules |
74 ''' | 74 """ |
75 names = [n.lower() for n in names] | 75 names = [n.lower() for n in names] |
76 if 'all' in names: | 76 if 'all' in names: |
77 for k in self.mod2name.keys(): | 77 for k in self.mod2name.keys(): |
78 self.lm.removeVisibleModule(k) | 78 self.lm.removeVisibleModule(k) |
79 else: | 79 else: |
80 for m in names: | 80 for m in names: |
81 self.lm.removeVisibleModule(self.name2mod[m]) | 81 self.lm.removeVisibleModule(self.name2mod[m]) |
82 | 82 |
83 def getVisibleModules(self): | 83 def getVisibleModules(self): |
84 ''' | 84 """ |
85 Gets currently visible modules | 85 Gets currently visible modules |
86 @see addVisibleModules | 86 @see: addVisibleModules |
87 ''' | 87 """ |
88 mods = [] | 88 mods = [] |
89 for k in self.mod2name.keys(): | 89 for k in self.mod2name.keys(): |
90 if self.lm.isVisible(k): | 90 if self.lm.isVisible(k): |
91 mods.append(self.mod2name[k]) | 91 mods.append(self.mod2name[k]) |
92 | 92 |
93 def setVisibleModules(self, *names): | 93 def setVisibleModules(self, *names): |
94 ''' | 94 """ |
95 Sets visible modules. Clears previously set modules. | 95 Sets visible modules. Clears previously set modules. |
96 @param names: module names to set visible | 96 @param names: module names to set visible |
97 @see addVisibleModules | 97 @see: addVisibleModules |
98 ''' | 98 """ |
99 self.lm.clearVisibleModules() | 99 self.lm.clearVisibleModules() |
100 self.addVisibleModules(*names) | 100 self.addVisibleModules(*names) |
101 | |
102 def setLevelFilter(self, fltr): | |
103 """ | |
104 Sets the minimum log level to view. | |
105 @param fltr: The filter level | |
106 """ | |
107 self.lm.setLevelFilter(fltr) | |
108 | |
109 def log_debug(self, message): | |
110 self.lm.log(0, self.name2mod["script"], message) | |
111 | |
112 def log_log(self, message): | |
113 self.lm.log(1, self.name2mod["script"], message) | |
114 | |
115 def log_warn(self, message): | |
116 self.lm.log(2, self.name2mod["script"], message) | |
117 | |
118 def log_error(self, message): | |
119 self.lm.log(3, self.name2mod["script"], message) |