import os import logging from datetime import datetime class LogService: def __init__(self, log_dir="logs"): self.log_dir = log_dir os.makedirs(self.log_dir, exist_ok=True) log_filename = os.path.join(self.log_dir, f"{datetime.now().strftime('%Y-%m-%d')}.log") # Tạo logger self.logger = logging.getLogger("TaskLogger") self.logger.setLevel(logging.INFO) self.logger.propagate = False # Xóa handler cũ để tránh duplicate log khi import nhiều lần if self.logger.handlers: self.logger.handlers.clear() # Ghi file file_handler = logging.FileHandler(log_filename, encoding="utf-8") file_handler.setLevel(logging.INFO) # In ra console console_handler = logging.StreamHandler() console_handler.setLevel(logging.INFO) # Format log formatter = logging.Formatter( '%(asctime)s - %(levelname)s - %(message)s', datefmt='%Y-%m-%d %H:%M:%S' ) file_handler.setFormatter(formatter) console_handler.setFormatter(formatter) self.logger.addHandler(file_handler) self.logger.addHandler(console_handler) def info(self, message: str): self.logger.info(message) def error(self, message: str): self.logger.error(message) def warning(self, message: str): self.logger.warning(message) # Singleton instance dùng chung toàn app log_service = LogService()