Changeset 7035 for branches/numpy/anuga/utilities/log.py
- Timestamp:
- May 14, 2009, 2:24:54 PM (15 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/numpy/anuga/utilities/log.py
r6902 r7035 24 24 ''' 25 25 26 import sys27 26 import os 28 27 import sys … … 60 59 NOTSET = logging.NOTSET 61 60 62 # getTrue if python version 2.5 or later61 # set new_python to True if python version 2.5 or later 63 62 (version_major, version_minor, _, _, _) = sys.version_info 64 63 new_python = ((version_major == 2 and version_minor >= 5) or version_major > 2) … … 103 102 console.setFormatter(formatter) 104 103 logging.getLogger('').addHandler(console) 104 105 # catch exceptions 106 sys.excepthook = log_exception_hook 105 107 106 108 # tell the world how we are set up … … 122 124 frames = traceback.extract_stack() 123 125 frames.reverse() 124 (_, mod_name) = __name__.rsplit('.', 1) 126 try: 127 (_, mod_name) = __name__.rsplit('.', 1) 128 except ValueError: 129 mod_name = __name__ 125 130 for (fpath, lnum, mname, _) in frames: 126 131 (fname, _) = os.path.basename(fpath).rsplit('.', 1) … … 133 138 logging.log(level, msg) 134 139 140 ## 141 # @brief Hook function to process uncaught exceptions. 142 # @param type 143 # @param value 144 # @param traceback 145 # @note Same interface as sys.excepthook() 146 def log_exception_hook(type, value, tb): 147 msg = ''.join(traceback.format_exception(type, value, tb)) 148 critical(msg) 149 150 135 151 ################################################################################ 136 152 # Shortcut routines to make for simpler user code. … … 176 192 if sys.platform != 'win32': 177 193 _proc_status = '/proc/%d/status' % os.getpid() 178 _scale = {'KB': 1024 .0, 'MB': 1024.0*1024.0, 'GB': 1024.0*1024.0*1024.0,179 'kB': 1024 .0, 'mB': 1024.0*1024.0, 'gB': 1024.0*1024.0*1024.0}194 _scale = {'KB': 1024, 'MB': 1024*1024, 'GB': 1024*1024*1024, 195 'kB': 1024, 'mB': 1024*1024, 'gB': 1024*1024*1024} 180 196 181 197 def _VmB(VmKey): … … 214 230 return _VmB('VmStk:') - since 215 231 216 msg = ('Resource usage: memory=%.1f resident=%.1f stacksize=%.1f'217 % (memory()/_scale[' GB'], resident()/_scale['GB'],218 stacksize()/_scale[' GB']))232 msg = ('Resource usage: memory=%.1fMB resident=%.1fMB stacksize=%.1fMB' 233 % (memory()/_scale['MB'], resident()/_scale['MB'], 234 stacksize()/_scale['MB'])) 219 235 log(level, msg) 220 236 else: 221 pass 237 msg = ('Sorry, no memory statistics for Windows (yet).') 238 log(level, msg) 239 240 241 if __name__ == '__main__': 242 ## critical('Testing exception capturing') 243 def test_it(num=100): 244 if num > 0: 245 test_it(num-1) 246 else: 247 resource_usage() 248 249 import numpy as num 250 251 a = num.zeros((1000,1000), num.float) 252 253 test_it()
Note: See TracChangeset
for help on using the changeset viewer.