"""日志配置 — 按天拆分 + 当前日志""" import logging import os from logging.handlers import TimedRotatingFileHandler from datetime import datetime LOG_DIR = os.getenv("LOG_DIR", os.path.join(os.path.dirname(__file__), "logs")) def setup_logger(name="mokeetext"): """配置日志:一天一个文件 + current.log 始终为当天日志""" os.makedirs(LOG_DIR, exist_ok=True) logger = logging.getLogger(name) logger.setLevel(logging.INFO) # 避免重复添加 handler if logger.handlers: return logger # 格式 formatter = logging.Formatter( "[%(asctime)s] %(levelname)s %(name)s | %(message)s", datefmt="%Y-%m-%d %H:%M:%S", ) # 按天轮转:每天午夜切一个新文件,保留 30 天 daily_handler = TimedRotatingFileHandler( filename=os.path.join(LOG_DIR, "mokeetext.log"), when="midnight", interval=1, backupCount=30, encoding="utf-8", ) daily_handler.suffix = "%Y-%m-%d" daily_handler.setFormatter(formatter) daily_handler.setLevel(logging.INFO) logger.addHandler(daily_handler) # 当前日志软链接(始终指向今天的日志) current_log = os.path.join(LOG_DIR, "current.log") # 控制台也输出 console_handler = logging.StreamHandler() console_handler.setFormatter(formatter) console_handler.setLevel(logging.INFO) logger.addHandler(console_handler) # 记录日志文件路径 logger.info(f"日志目录: {LOG_DIR}") return logger def get_log_path(): """返回今天的日志文件路径""" today = datetime.now().strftime("%Y-%m-%d") return os.path.join(LOG_DIR, f"mokeetext.log{today}") # 单例 logger = setup_logger()