import logging import sys from datetime import datetime from pathlib import Path def setup_logger(name: str = "bot", log_dir: str = "logs") -> logging.Logger: Path(log_dir).mkdir(exist_ok=True) timestamp = datetime.now().strftime("%Y%m%d_%H%M%S") log_file = Path(log_dir) / f"bot_{timestamp}.log" logger = logging.getLogger(name) logger.setLevel(logging.DEBUG) if logger.handlers: logger.handlers.clear() fh = logging.FileHandler(log_file, encoding="utf-8") fh.setLevel(logging.DEBUG) fh.setFormatter(logging.Formatter("%(asctime)s [%(levelname)-8s] %(message)s")) ch = logging.StreamHandler(sys.stdout) ch.setLevel(logging.INFO) ch.setFormatter(logging.Formatter("[%(levelname)s] %(message)s")) logger.addHandler(fh) logger.addHandler(ch) return logger