Spaces:
Running
Running
| 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): | |
| def wrapper(*args, **kwargs): | |
| with _Log(self.enter_message, self.exit_message): | |
| return func(*args, **kwargs) | |
| return None | |
| return wrapper | |