| 123456789101112131415161718192021222324252627282930313233343536 |
- # -*- 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)
|