This commit is contained in:
78
frontend/logger.py
Normal file
78
frontend/logger.py
Normal file
@@ -0,0 +1,78 @@
|
||||
"""
|
||||
前端日志模块
|
||||
基于环境变量控制日志级别,与后端保持一致
|
||||
"""
|
||||
|
||||
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)
|
||||
Reference in New Issue
Block a user