Spaces:
Sleeping
Sleeping
File size: 1,253 Bytes
a5fd608 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 | import logging
from functools import wraps
def get_logger(name: str, filepath: str = None):
logger = logging.getLogger(name)
logger.setLevel(logging.INFO)
# 控制台
console_handler = logging.StreamHandler()
logger.addHandler(console_handler)
# 文件
if filepath:
file_handler = logging.FileHandler(filepath)
logger.addHandler(file_handler)
return logger
def log(enter_message: str = "", exit_message: str = ""):
return _Log(enter_message=enter_message, exit_message=exit_message)
class _Log:
def __init__(
self,
enter_message: str = "",
exit_message: str = ""
):
self.enter_message = enter_message
self.exit_message = exit_message
def __enter__(self):
if self.enter_message:
print(self.enter_message)
return self
def __exit__(self, exc_type, exc, tb):
if self.exit_message:
print(self.exit_message)
print("")
return False
def __call__(self, func):
@wraps(func)
def wrapper(*args, **kwargs):
with _Log(self.enter_message, self.exit_message):
return func(*args, **kwargs)
return None
return wrapper
|