py.lib
41:483727ff89c4
Go to Latest
py.lib/log/slog_console.py
+ Возможность удалить cookie при формировании штатного ответа.
2 """ Логирование на консоль
4 Метки в журнале о уровне сообщения:
12 from time import monotonic
13 from datetime import timedelta
14 from sys import exc_info, stderr, stdout
15 from traceback import extract_tb, extract_stack
19 def __init__(self, name=None):
23 self.prefix = '%s :: ' % name
24 self.tsAll = monotonic()
28 return monotonic() - self.ts
36 return self.prefix + '%s(%.4f)' % (timedelta(seconds=(ts - self.tsAll)), ts - self.ts)
38 def __call__(self, msg):
39 _buf = '%s | %s' % (self, msg)
44 class ConsoleLog(object):
45 def __init__(self, appname='main'):
46 self.appname = appname
53 def __call__(self, msg):
55 lambda x: '%3s | %s :: %s' % ('.', self.appname, x),
61 lambda x: '%3s | %s :: %s' % ('!', self.appname, x),
67 lambda x: '%3s | %s :: %s' % ('*', self.appname, x),
73 lambda x: '%3s | %s :: %s' % ('#', self.appname, x),
79 lambda x: '%3s | %s :: %s' % ('`', self.appname, x),
84 def getTiming(name=None):
87 def sublog(self, name):
88 return self.__class__('%s/%s' % (self.appname, name))
90 def excpt(self, msg, eClass=None, eObj=None, eTb=None, stack_skip=0):
92 eClass, eObj, eTb = exc_info()
94 tbData_tb = list(extract_tb(eTb))[::-1]
95 tbData_stack = list(extract_stack())[::-1][(2 + stack_skip):]
97 self.err('--- EXCEPTION ---')
98 self.err(' %s (%s)' % (eClass.__name__, eObj))
99 self.err('--- TRACEBACK ---')
100 for _tbFile, _tbLine, _tbFunc, _tbText in tbData_tb:
101 self.err('File: %s, line %s in %s' % (_tbFile, _tbLine, _tbFunc))
102 self.err(' %s' % _tbText)
103 self.err('>>> Exception Handler <<<')
104 for _tbFile, _tbLine, _tbFunc, _tbText in tbData_stack:
105 self.err('File: %s, line %s in %s' % (_tbFile, _tbLine, _tbFunc))
106 self.err(' %s' % _tbText)
107 self.err('--- END EXCEPTION ---')
110 class StderrLog(ConsoleLog):
114 stderr.write('%s\n' % l)
118 class StdoutLog(ConsoleLog):
122 stdout.write('%s\n' % l)