import logging import os from logging.handlers import TimedRotatingFileHandler # 获取项目根目录并创建 logs 目录 base_dir = os.path.dirname(os.path.dirname(os.path.dirname(os.path.abspath(__file__)))) log_dir = os.path.join(base_dir, 'logs') os.makedirs(log_dir, exist_ok=True) log_file = os.path.join(log_dir, 'app.log') formatter = logging.Formatter( '[%(asctime)s] %(name)s [%(levelname)s] %(filename)s[line:%(lineno)d]: %(message)s' ) # 按天切分的文件处理器,保留最近 7 天 file_handler = TimedRotatingFileHandler( log_file, when='midnight', interval=1, backupCount=7, encoding='utf-8' ) file_handler.setFormatter(formatter) console_handler = logging.StreamHandler() console_handler.setFormatter(formatter) # 获取标准 logger logger = logging.getLogger('ProxyPool') logger.setLevel(logging.INFO) # 防止重复添加 handler(如模块重导入) if not logger.handlers: logger.addHandler(file_handler) logger.addHandler(console_handler)