Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import logging
- import logging.handlers
- format = logging.Formatter(
- '%(asctime)s %(levelname)-8s %(module)s %(filename)s %(message)s')
- # декоратор для сервера
- def server_log(f):
- func = f
- h = logging.handlers.TimedRotatingFileHandler('serverlog.log', 'midnight', encoding='utf-8')
- h.setFormatter(format)
- logger = logging.getLogger('serverLogger')
- logger.addHandler(h)
- func_name = func.__name__
- def wrapper(*args, **kwargs):
- result = func(args, kwargs)
- if result:
- logger.setLevel(logging.INFO)
- logger.info('{} {} {}'.format(func_name, args, kwargs))
- else:
- logger.setLevel(logging.CRITICAL)
- logger.critical('{} {} {}'.format(func_name, args, kwargs))
- return result
- return wrapper
- # декоратор для клиента
- def client_log(f):
- func = f
- h = logging.FileHandler('clientlog.log', encoding='utf-8')
- h.setFormatter(format)
- logger = logging.getLogger('clientLogger')
- logger.addHandler(h)
- func_name = func.__name__
- def wrapper(*args, **kwargs):
- result = func(*args, **kwargs)
- if result:
- logger.setLevel(logging.INFO)
- logger.info('{} {} {}'.format(func_name, args, kwargs))
- else:
- logger.setLevel(logging.CRITICAL)
- logger.critical('{} {} {}'.format(func_name, args, kwargs))
- return result
- return wrapper
- if __name__ == '__main__':
- @server_log
- def server(*args, **kwargs):
- print('===server function===')
- if args or kwargs:
- return True
- else:
- return False
- server(1, 2)
- server()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement