# -*- coding: utf-8 -*- """统一日志配置。 替代原 interface/settings.py 中分散的 LOG_FORMAT/DATE_FORMAT/LOG_LEVEL/LOG_FILE。 """ from __future__ import absolute_import import logging from . import config __all__ = ["setup_logging", "get_logger"] def setup_logging(): """根据 config/settings.yaml 初始化 logging.basicConfig。""" cfg = config.logging_settings() level_name = str(cfg.get("level", "INFO")).upper() level = getattr(logging, level_name, logging.INFO) log_format = cfg.get("format", "%(asctime)s - %(levelname)s - %(message)s") date_format = cfg.get("date_format", "%m/%d/%Y %H:%M:%S %p") log_file = cfg.get("file") kwargs = dict(level=level, format=log_format, datefmt=date_format) if log_file: # 确保日志目录存在 import os log_dir = os.path.dirname(log_file) if log_dir and not os.path.exists(log_dir): os.makedirs(log_dir, exist_ok=True) kwargs["filename"] = log_file logging.basicConfig(**kwargs) def get_logger(name): """获取命名 logger。""" return logging.getLogger(name)