"""统一日志配置模块""" import logging import os from datetime import datetime def setup_logging(logger_name, log_filename=None): """ 设置统一的文件日志配置 Args: logger_name: logger名称 log_filename: 日志文件名,如果不提供则使用logger_name Returns: configured logger: 配置好的logger """ # 创建日志目录 log_dir = "logs" if not os.path.exists(log_dir): os.makedirs(log_dir) # 设置日志文件名 if log_filename is None: log_filename = f"{logger_name}.log" log_file = os.path.join(log_dir, log_filename) # 配置文件处理器 file_handler = logging.FileHandler(log_file, encoding='utf-8') file_handler.setLevel(logging.INFO) # 设置日志格式 formatter = logging.Formatter( '%(asctime)s - %(name)s - %(levelname)s - %(message)s', datefmt='%Y-%m-%d %H:%M:%S' ) file_handler.setFormatter(formatter) # 获取或创建logger logger = logging.getLogger(logger_name) # 避免重复添加handler if not logger.handlers: logger.addHandler(file_handler) logger.setLevel(logging.INFO) return logger def get_logger(logger_name): """获取配置好的logger""" return setup_logging(logger_name) # 全局日志配置 def setup_global_logging(): """设置全局应用日志""" # 应用主日志 app_logger = setup_logging('app', 'app_main.log') # Celery日志 celery_logger = setup_logging('celery', 'celery_app.log') # 任务日志 task_logger = setup_logging('call_api_task', 'call_api_tasks.log') return { 'app': app_logger, 'celery': celery_logger, 'call_api_task': task_logger }