79 lines
1.7 KiB
Python
79 lines
1.7 KiB
Python
"""
|
|
前端日志模块
|
|
基于环境变量控制日志级别,与后端保持一致
|
|
"""
|
|
|
|
import os
|
|
import logging
|
|
from typing import Any
|
|
from dotenv import load_dotenv
|
|
|
|
# 先加载环境变量
|
|
load_dotenv()
|
|
|
|
# ==================== 日志配置 ====================
|
|
|
|
# 从环境变量读取日志级别,默认 INFO
|
|
LOG_LEVEL = os.getenv("LOG_LEVEL", "INFO").upper()
|
|
|
|
# 根据环境变量控制是否显示详细调试信息
|
|
DEBUG_MODE = os.getenv("DEBUG", "false").lower() == "true"
|
|
|
|
# 创建统一的日志器
|
|
logger = logging.getLogger("ai_agent_frontend")
|
|
logger.setLevel(getattr(logging, LOG_LEVEL, logging.INFO))
|
|
|
|
# 避免重复添加 handler
|
|
if not logger.handlers:
|
|
handler = logging.StreamHandler()
|
|
handler.setLevel(getattr(logging, LOG_LEVEL, logging.INFO))
|
|
formatter = logging.Formatter(
|
|
fmt="%(asctime)s | %(levelname)-8s | %(name)s | %(message)s",
|
|
datefmt="%Y-%m-%d %H:%M:%S"
|
|
)
|
|
handler.setFormatter(formatter)
|
|
logger.addHandler(handler)
|
|
|
|
|
|
# ==================== 日志函数 ====================
|
|
|
|
def debug(msg: Any, *args, **kwargs):
|
|
"""
|
|
调试日志,仅在 DEBUG 环境变量为 true 时打印
|
|
|
|
Args:
|
|
msg: 日志消息
|
|
"""
|
|
if DEBUG_MODE:
|
|
logger.debug(msg, *args, **kwargs)
|
|
|
|
|
|
def info(msg: Any, *args, **kwargs):
|
|
"""
|
|
信息日志
|
|
|
|
Args:
|
|
msg: 日志消息
|
|
"""
|
|
logger.info(msg, *args, **kwargs)
|
|
|
|
|
|
def warning(msg: Any, *args, **kwargs):
|
|
"""
|
|
警告日志
|
|
|
|
Args:
|
|
msg: 日志消息
|
|
"""
|
|
logger.warning(msg, *args, **kwargs)
|
|
|
|
|
|
def error(msg: Any, *args, **kwargs):
|
|
"""
|
|
错误日志
|
|
|
|
Args:
|
|
msg: 日志消息
|
|
"""
|
|
logger.error(msg, *args, **kwargs)
|