py.lib

Yohn Y. 2022-07-17 Parent:54d7d7b9350b Child:b8fc22566efd

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 ---')