| import time | |
| import logging | |
| logging.basicConfig(level=logging.INFO, format="%(asctime)s [%(levelname)s] %(message)s") | |
| def log_timed(message): | |
| def decorator(func): | |
| def wrapper(*args, **kwargs): | |
| logging.info(f"Bắt đầu {message}...") | |
| start = time.time() | |
| result = func(*args, **kwargs) | |
| end = time.time() | |
| logging.info(f"Hoàn tất {message} trong {end - start:.2f}s.") | |
| return result | |
| return wrapper | |
| return decorator |