"""
日志配置工具

提供统一的日志配置方法。
"""

import logging
from typing import Optional


def setup_logging(
    level: str = "INFO",
    format: Optional[str] = None,
    file: Optional[str] = None
):
    """
    配置日志系统

    Args:
        level: 日志级别（DEBUG, INFO, WARNING, ERROR, CRITICAL）
        format: 日志格式（None 使用默认格式）
        file: 日志文件路径（None 只输出到控制台）
    """
    log_level = getattr(logging, level.upper(), logging.INFO)
    log_format = format or "%(asctime)s - %(name)s - %(levelname)s - %(message)s"

    handlers = [logging.StreamHandler()]
    if file:
        handlers.append(logging.FileHandler(file, encoding="utf-8"))

    logging.basicConfig(
        level=log_level,
        format=log_format,
        handlers=handlers,
        force=True
    )

    # 设置第三方库日志级别
    logging.getLogger("httpx").setLevel(logging.WARNING)
    logging.getLogger("httpcore").setLevel(logging.WARNING)
