import logging import os from core.config import settings def setup_logger(): log_dir = settings.logging.directory log_level = settings.logging.level os.makedirs(log_dir, exist_ok=True) # 创建并配置全局 logger logger_name = 'app' _logger = logging.getLogger('app') if len(_logger.handlers) == 0: handler = logging.FileHandler(os.path.join(log_dir, f"{logger_name}.log"), encoding='utf-8') formatter = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s') handler.setFormatter(formatter) _logger.addHandler(handler) if settings.get("logging.console", False): console_handler = logging.StreamHandler() console_handler.setFormatter(formatter) _logger.addHandler(console_handler) _logger.setLevel(getattr(logging, log_level.upper(), logging.DEBUG)) # 关闭日志传播,防止重复处理 _logger.propagate = False return _logger # 程序启动时调用一次 logger 配置 logger = setup_logger()