py.lib
28:d6032160c314 Browse Files
. Переименовние log/slog_syslogger_tiny.py -> log/tiny_slog.py
log/slog_syslogger_tiny.py log/tiny_slog.py
1.1 --- a/log/slog_syslogger_tiny.py Sun Jul 17 11:21:29 2022 +0300 1.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 1.3 @@ -1,103 +0,0 @@ 1.4 -# coding: utf-8 1.5 -""" 1.6 -Тривиальная реализация сислоггера без блэк-джека и поэтесс 1.7 - 1.8 -Метки в журнале о уровне сообщения: 1.9 - "`": Debug 1.10 - ".": Info 1.11 - "*": Warning 1.12 - "!": Error 1.13 - "#": Alert 1.14 - 1.15 -""" 1.16 -from time import time 1.17 -from datetime import timedelta 1.18 - 1.19 -import syslog 1.20 -from traceback import extract_tb, extract_stack 1.21 -from sys import exc_info 1.22 - 1.23 - 1.24 -class Timing(object): 1.25 - def __init__(self, name=None): 1.26 - if name is None: 1.27 - self.prefix = '' 1.28 - else: 1.29 - self.prefix = '%s :: ' % name 1.30 - self.tsAll = time() 1.31 - self.ts = self.tsAll 1.32 - 1.33 - def getTime(self): 1.34 - return time() - self.ts 1.35 - 1.36 - def reset(self): 1.37 - self.ts = time() 1.38 - self.tsAll = self.ts 1.39 - 1.40 - def __str__(self): 1.41 - ts = time() 1.42 - return self.prefix + '%s(%.4f)' % (timedelta(seconds=(ts - self.tsAll)), ts - self.ts) 1.43 - 1.44 - def __call__(self, msg): 1.45 - _buf = '%s | %s' % (self, msg) 1.46 - self.ts = time() 1.47 - return _buf 1.48 - 1.49 - 1.50 -class SimpleSysLogger(object): 1.51 - @staticmethod 1.52 - def init_syslog(ident): 1.53 - syslog.openlog(ident, syslog.LOG_PID) 1.54 - 1.55 - @staticmethod 1.56 - def get_timing(name=None): 1.57 - return Timing(name) 1.58 - 1.59 - def __init__(self, prefix, facility=syslog.LOG_USER): 1.60 - self.prefix = str(prefix) 1.61 - self.facility = facility 1.62 - 1.63 - def _write(self, flag, mark, msg): 1.64 - for l in str(msg).splitlines(): 1.65 - syslog.syslog(self.facility | flag, f'{self.prefix}: {mark} {l}') 1.66 - 1.67 - def __call__(self, msg): 1.68 - self._write(syslog.LOG_INFO, '.', msg) 1.69 - 1.70 - def err(self, msg): 1.71 - self._write(syslog.LOG_ERR, '!', msg) 1.72 - 1.73 - def warn(self, msg): 1.74 - self._write(syslog.LOG_WARNING, '*', msg) 1.75 - 1.76 - def debug(self, msg): 1.77 - self._write(syslog.LOG_DEBUG, '`', msg) 1.78 - 1.79 - def alert(self, msg): 1.80 - self._write(syslog.LOG_ALERT, '#', msg) 1.81 - 1.82 - def sub_log(self, prefix): 1.83 - return self.__class__('%s/%s' % (self.prefix, prefix), self.facility) 1.84 - 1.85 - def excpt(self, msg, e_class=None, e_obj=None, e_tback=None, stack_skip=0): 1.86 - if e_class is None: 1.87 - e_class, e_obj, e_tback = exc_info() 1.88 - 1.89 - tb_data_tb = list(extract_tb(e_tback))[::-1] 1.90 - tb_data_stack = list(extract_stack())[::-1][(2 + stack_skip):] 1.91 - 1.92 - self.err(msg) 1.93 - self.err('--- EXCEPTION ---') 1.94 - self.err(' %s (%s)' % (e_class.__name__, e_obj)) 1.95 - 1.96 - self.err('--- TRACEBACK ---') 1.97 - for _tb_file, _tb_line, _tb_func, _tb_text in tb_data_tb: 1.98 - self.err('File: %s, line %s in %s' % (_tb_file, _tb_line, _tb_func)) 1.99 - self.err(' %s' % _tb_text) 1.100 - 1.101 - self.err('>>> Exception Handler <<<') 1.102 - for _tb_file, _tb_line, _tb_func, _tb_text in tb_data_stack: 1.103 - self.err('File: %s, line %s in %s' % (_tb_file, _tb_line, _tb_func)) 1.104 - self.err(' %s' % _tb_text) 1.105 - 1.106 - self.err('--- END EXCEPTION ---')
2.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 2.2 +++ b/log/tiny_slog.py Sun Jul 17 11:39:25 2022 +0300 2.3 @@ -0,0 +1,103 @@ 2.4 +# coding: utf-8 2.5 +""" 2.6 +Тривиальная реализация сислоггера без блэк-джека и поэтесс 2.7 + 2.8 +Метки в журнале о уровне сообщения: 2.9 + "`": Debug 2.10 + ".": Info 2.11 + "*": Warning 2.12 + "!": Error 2.13 + "#": Alert 2.14 + 2.15 +""" 2.16 +from time import time 2.17 +from datetime import timedelta 2.18 + 2.19 +import syslog 2.20 +from traceback import extract_tb, extract_stack 2.21 +from sys import exc_info 2.22 + 2.23 + 2.24 +class Timing(object): 2.25 + def __init__(self, name=None): 2.26 + if name is None: 2.27 + self.prefix = '' 2.28 + else: 2.29 + self.prefix = '%s :: ' % name 2.30 + self.tsAll = time() 2.31 + self.ts = self.tsAll 2.32 + 2.33 + def getTime(self): 2.34 + return time() - self.ts 2.35 + 2.36 + def reset(self): 2.37 + self.ts = time() 2.38 + self.tsAll = self.ts 2.39 + 2.40 + def __str__(self): 2.41 + ts = time() 2.42 + return self.prefix + '%s(%.4f)' % (timedelta(seconds=(ts - self.tsAll)), ts - self.ts) 2.43 + 2.44 + def __call__(self, msg): 2.45 + _buf = '%s | %s' % (self, msg) 2.46 + self.ts = time() 2.47 + return _buf 2.48 + 2.49 + 2.50 +class SimpleSysLogger(object): 2.51 + @staticmethod 2.52 + def init_syslog(ident): 2.53 + syslog.openlog(ident, syslog.LOG_PID) 2.54 + 2.55 + @staticmethod 2.56 + def get_timing(name=None): 2.57 + return Timing(name) 2.58 + 2.59 + def __init__(self, prefix, facility=syslog.LOG_USER): 2.60 + self.prefix = str(prefix) 2.61 + self.facility = facility 2.62 + 2.63 + def _write(self, flag, mark, msg): 2.64 + for l in str(msg).splitlines(): 2.65 + syslog.syslog(self.facility | flag, f'{self.prefix}: {mark} {l}') 2.66 + 2.67 + def __call__(self, msg): 2.68 + self._write(syslog.LOG_INFO, '.', msg) 2.69 + 2.70 + def err(self, msg): 2.71 + self._write(syslog.LOG_ERR, '!', msg) 2.72 + 2.73 + def warn(self, msg): 2.74 + self._write(syslog.LOG_WARNING, '*', msg) 2.75 + 2.76 + def debug(self, msg): 2.77 + self._write(syslog.LOG_DEBUG, '`', msg) 2.78 + 2.79 + def alert(self, msg): 2.80 + self._write(syslog.LOG_ALERT, '#', msg) 2.81 + 2.82 + def sub_log(self, prefix): 2.83 + return self.__class__('%s/%s' % (self.prefix, prefix), self.facility) 2.84 + 2.85 + def excpt(self, msg, e_class=None, e_obj=None, e_tback=None, stack_skip=0): 2.86 + if e_class is None: 2.87 + e_class, e_obj, e_tback = exc_info() 2.88 + 2.89 + tb_data_tb = list(extract_tb(e_tback))[::-1] 2.90 + tb_data_stack = list(extract_stack())[::-1][(2 + stack_skip):] 2.91 + 2.92 + self.err(msg) 2.93 + self.err('--- EXCEPTION ---') 2.94 + self.err(' %s (%s)' % (e_class.__name__, e_obj)) 2.95 + 2.96 + self.err('--- TRACEBACK ---') 2.97 + for _tb_file, _tb_line, _tb_func, _tb_text in tb_data_tb: 2.98 + self.err('File: %s, line %s in %s' % (_tb_file, _tb_line, _tb_func)) 2.99 + self.err(' %s' % _tb_text) 2.100 + 2.101 + self.err('>>> Exception Handler <<<') 2.102 + for _tb_file, _tb_line, _tb_func, _tb_text in tb_data_stack: 2.103 + self.err('File: %s, line %s in %s' % (_tb_file, _tb_line, _tb_func)) 2.104 + self.err(' %s' % _tb_text) 2.105 + 2.106 + self.err('--- END EXCEPTION ---')