Mercurial > traipse_dev
annotate orpg/tools/orpg_log.py @ 74:fdcca00696ea ornery-dev
Continuing the code refinement.
author | sirebral |
---|---|
date | Fri, 21 Aug 2009 21:40:22 -0500 |
parents | c54768cffbd4 |
children | dd4be4817377 |
rev | line source |
---|---|
0
4385a7d0efd1
Deleted and repushed it with the 'grumpy-goblin' branch. I forgot a y
sirebral
parents:
diff
changeset
|
1 # Copyright (C) 2000-2001 The OpenRPG Project |
4385a7d0efd1
Deleted and repushed it with the 'grumpy-goblin' branch. I forgot a y
sirebral
parents:
diff
changeset
|
2 # |
4385a7d0efd1
Deleted and repushed it with the 'grumpy-goblin' branch. I forgot a y
sirebral
parents:
diff
changeset
|
3 # openrpg-dev@lists.sourceforge.net |
4385a7d0efd1
Deleted and repushed it with the 'grumpy-goblin' branch. I forgot a y
sirebral
parents:
diff
changeset
|
4 # |
4385a7d0efd1
Deleted and repushed it with the 'grumpy-goblin' branch. I forgot a y
sirebral
parents:
diff
changeset
|
5 # This program is free software; you can redistribute it and/or modify |
4385a7d0efd1
Deleted and repushed it with the 'grumpy-goblin' branch. I forgot a y
sirebral
parents:
diff
changeset
|
6 # it under the terms of the GNU General Public License as published by |
4385a7d0efd1
Deleted and repushed it with the 'grumpy-goblin' branch. I forgot a y
sirebral
parents:
diff
changeset
|
7 # the Free Software Foundation; either version 2 of the License, or |
4385a7d0efd1
Deleted and repushed it with the 'grumpy-goblin' branch. I forgot a y
sirebral
parents:
diff
changeset
|
8 # (at your option) any later version. |
4385a7d0efd1
Deleted and repushed it with the 'grumpy-goblin' branch. I forgot a y
sirebral
parents:
diff
changeset
|
9 # |
4385a7d0efd1
Deleted and repushed it with the 'grumpy-goblin' branch. I forgot a y
sirebral
parents:
diff
changeset
|
10 # This program is distributed in the hope that it will be useful, |
4385a7d0efd1
Deleted and repushed it with the 'grumpy-goblin' branch. I forgot a y
sirebral
parents:
diff
changeset
|
11 # but WITHOUT ANY WARRANTY; without even the implied warranty of |
4385a7d0efd1
Deleted and repushed it with the 'grumpy-goblin' branch. I forgot a y
sirebral
parents:
diff
changeset
|
12 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
4385a7d0efd1
Deleted and repushed it with the 'grumpy-goblin' branch. I forgot a y
sirebral
parents:
diff
changeset
|
13 # GNU General Public License for more details. |
4385a7d0efd1
Deleted and repushed it with the 'grumpy-goblin' branch. I forgot a y
sirebral
parents:
diff
changeset
|
14 # |
4385a7d0efd1
Deleted and repushed it with the 'grumpy-goblin' branch. I forgot a y
sirebral
parents:
diff
changeset
|
15 # You should have received a copy of the GNU General Public License |
4385a7d0efd1
Deleted and repushed it with the 'grumpy-goblin' branch. I forgot a y
sirebral
parents:
diff
changeset
|
16 # along with this program; if not, write to the Free Software |
4385a7d0efd1
Deleted and repushed it with the 'grumpy-goblin' branch. I forgot a y
sirebral
parents:
diff
changeset
|
17 # Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. |
4385a7d0efd1
Deleted and repushed it with the 'grumpy-goblin' branch. I forgot a y
sirebral
parents:
diff
changeset
|
18 # -- |
4385a7d0efd1
Deleted and repushed it with the 'grumpy-goblin' branch. I forgot a y
sirebral
parents:
diff
changeset
|
19 # |
4385a7d0efd1
Deleted and repushed it with the 'grumpy-goblin' branch. I forgot a y
sirebral
parents:
diff
changeset
|
20 # File: orpg_log.py |
4385a7d0efd1
Deleted and repushed it with the 'grumpy-goblin' branch. I forgot a y
sirebral
parents:
diff
changeset
|
21 # Author: Dj Gilcrease |
4385a7d0efd1
Deleted and repushed it with the 'grumpy-goblin' branch. I forgot a y
sirebral
parents:
diff
changeset
|
22 # Maintainer: |
4385a7d0efd1
Deleted and repushed it with the 'grumpy-goblin' branch. I forgot a y
sirebral
parents:
diff
changeset
|
23 # Version: |
4385a7d0efd1
Deleted and repushed it with the 'grumpy-goblin' branch. I forgot a y
sirebral
parents:
diff
changeset
|
24 # $Id: orpg_log.py,v 1.9 2007/05/06 16:43:02 digitalxero Exp $ |
4385a7d0efd1
Deleted and repushed it with the 'grumpy-goblin' branch. I forgot a y
sirebral
parents:
diff
changeset
|
25 # |
4385a7d0efd1
Deleted and repushed it with the 'grumpy-goblin' branch. I forgot a y
sirebral
parents:
diff
changeset
|
26 # Description: classes for orpg log messages |
4385a7d0efd1
Deleted and repushed it with the 'grumpy-goblin' branch. I forgot a y
sirebral
parents:
diff
changeset
|
27 # |
66 | 28 from __future__ import with_statement |
29 import sys | |
30 import os, os.path | |
31 import time | |
0
4385a7d0efd1
Deleted and repushed it with the 'grumpy-goblin' branch. I forgot a y
sirebral
parents:
diff
changeset
|
32 |
66 | 33 from orpg.external.terminalwriter import TerminalWriter |
34 from orpg.tools.decorators import pending_deprecation | |
35 from orpg.dirpath import dir_struct | |
36 | |
37 ######################### | |
38 ## Error Types | |
39 ######################### | |
40 ORPG_CRITICAL = 1 | |
41 ORPG_GENERAL = 2 | |
42 ORPG_INFO = 4 | |
43 ORPG_NOTE = 8 | |
44 ORPG_DEBUG = 16 | |
0
4385a7d0efd1
Deleted and repushed it with the 'grumpy-goblin' branch. I forgot a y
sirebral
parents:
diff
changeset
|
45 |
66 | 46 class orpgLog(object): |
47 _log_level = 7 | |
48 _log_name = None | |
49 _log_to_console = False | |
50 _io = TerminalWriter(sys.stderr) | |
51 _lvl_args = None | |
52 | |
53 def __new__(cls, *args, **kwargs): | |
54 it = cls.__dict__.get("__it__") | |
55 if it is not None: | |
56 return it | |
57 cls.__it__ = it = object.__new__(cls) | |
58 return it | |
59 | |
0
4385a7d0efd1
Deleted and repushed it with the 'grumpy-goblin' branch. I forgot a y
sirebral
parents:
diff
changeset
|
60 def __init__(self, home_dir, filename='orpgRunLog '): |
66 | 61 self._lvl_args = {16: {'colorizer': {'green': True}, |
62 'log_string': 'DEBUG'}, | |
63 8: {'colorizer': {'bold': True, 'green':True}, | |
64 'log_string':'NOTE'}, | |
65 4: {'colorizer': {'blue': True}, | |
66 'log_string': 'INFO'}, | |
67 2: {'colorizer': {'red': True}, | |
68 'log_string': 'ERROR'}, | |
69 1: {'colorizer': {'bold': True, 'red': True}, | |
70 'log_string': 'EXCEPTION'}} | |
71 if not self.log_name: | |
72 self.log_name = home_dir + filename + time.strftime('%m-%d-%Y.txt', | |
73 time.localtime(time.time())) | |
0
4385a7d0efd1
Deleted and repushed it with the 'grumpy-goblin' branch. I forgot a y
sirebral
parents:
diff
changeset
|
74 |
66 | 75 def debug(self, msg, to_console=False): |
76 self.log(msg, ORPG_DEBUG, to_console) | |
77 | |
78 def note(self, msg, to_console=False): | |
79 self.log(msg, ORPG_NOTE, to_console) | |
80 | |
81 def info(self, msg, to_console=False): | |
82 self.log(msg, ORPG_INFO, to_console) | |
83 | |
84 def general(self, msg, to_console=False): | |
85 self.log(msg, ORPG_GENERAL, to_console) | |
86 | |
87 def exception(self, msg, to_console=True): | |
88 self.log(msg, ORPG_CRITICAL, to_console) | |
89 | |
90 def log(self, msg, log_type, to_console=False): | |
91 if self.log_to_console or to_console or log_type == ORPG_CRITICAL: | |
92 self._io.line(str(msg), **self._lvl_args[log_type]['colorizer']) | |
0
4385a7d0efd1
Deleted and repushed it with the 'grumpy-goblin' branch. I forgot a y
sirebral
parents:
diff
changeset
|
93 |
66 | 94 |
95 if log_type & self.log_level or to_console: | |
96 atr = {'msg': msg, 'level': self._lvl_args[log_type]['log_string']} | |
97 atr['time'] = time.strftime('[%x %X]', time.localtime(time.time())) | |
98 logMsg = '%(time)s (%(level)s) - %(msg)s\n' % (atr) | |
99 | |
100 with open(self.log_name, 'a') as f: | |
101 f.write(logMsg) | |
102 | |
103 @pending_deprecation("use logger.log_level = #") | |
104 def setLogLevel(self, log_level): | |
105 self.log_level = log_level | |
0
4385a7d0efd1
Deleted and repushed it with the 'grumpy-goblin' branch. I forgot a y
sirebral
parents:
diff
changeset
|
106 |
66 | 107 @pending_deprecation("use logger.log_level") |
108 def getLogLevel(self): | |
109 return self.log_level | |
110 | |
111 @pending_deprecation("use logger.log_name = bla") | |
112 def setLogName(self, log_name): | |
113 self.log_name = log_name | |
0
4385a7d0efd1
Deleted and repushed it with the 'grumpy-goblin' branch. I forgot a y
sirebral
parents:
diff
changeset
|
114 |
66 | 115 @pending_deprecation("use logger.log_name") |
116 def getLogName(self): | |
117 return self.log_name | |
118 | |
119 @pending_deprecation("use logger.log_to_console = True/False") | |
120 def setLogToConsol(self, true_or_false): | |
121 self.log_to_consol = true_or_false | |
122 | |
123 @pending_deprecation("use logger.log_to_console") | |
124 def getLogToConsol(self): | |
125 return self.log_to_consol | |
0
4385a7d0efd1
Deleted and repushed it with the 'grumpy-goblin' branch. I forgot a y
sirebral
parents:
diff
changeset
|
126 |
66 | 127 """ |
128 Property Methods | |
129 """ | |
130 def _get_log_level(self): | |
131 return self._log_level | |
132 def _set_log_level(self, log_level): | |
133 if not isinstance(log_level, int) or log_level < 1 or log_level > 31: | |
134 raise TypeError("The loggers level must be an int between 1 and 31") | |
0
4385a7d0efd1
Deleted and repushed it with the 'grumpy-goblin' branch. I forgot a y
sirebral
parents:
diff
changeset
|
135 |
66 | 136 self._log_level = log_level |
0
4385a7d0efd1
Deleted and repushed it with the 'grumpy-goblin' branch. I forgot a y
sirebral
parents:
diff
changeset
|
137 |
66 | 138 def _get_log_name(self): |
139 return self._log_name | |
140 def _set_log_name(self, name): | |
141 if not os.access(os.path.abspath(os.path.dirname(name)), os.W_OK): | |
142 raise IOError("Could not write to the specified location") | |
143 | |
144 self._log_name = name | |
0
4385a7d0efd1
Deleted and repushed it with the 'grumpy-goblin' branch. I forgot a y
sirebral
parents:
diff
changeset
|
145 |
66 | 146 def _get_log_to_console(self): |
147 return self._log_to_console | |
148 def _set_log_to_console(self, true_or_false): | |
149 if not isinstance(true_or_false, bool): | |
150 raise TypeError("log_to_console must be a boolean value") | |
151 | |
152 self._log_to_console = true_or_false | |
153 | |
154 log_level = property(_get_log_level, _set_log_level) | |
155 log_name = property(_get_log_name, _set_log_name) | |
156 log_to_console = property(_get_log_to_console, _set_log_to_console) | |
157 | |
158 logger = orpgLog(dir_struct.get("user") + "runlogs/") |