Files
ailine/app/logger.py
root 8dd94c6c19
All checks were successful
构建并部署 AI Agent 服务 / deploy (push) Successful in 27s
添加长期记忆
2026-04-14 17:34:12 +08:00

56 lines
1.5 KiB
Python
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

"""
统一的日志模块 - 基于环境变量控制日志级别
类似 C# 的条件编译效果,开发时打印详细调试信息,生产环境只输出关键信息
"""
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")
logger.setLevel(getattr(logging, LOG_LEVEL, logging.INFO))
# 避免重复添加 handler
if not logger.handlers:
handler = logging.StreamHandler()
# 重要handler 也需要设置级别,否则可能继承根 logger 的级别
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 时打印"""
if DEBUG_MODE:
logger.debug(msg, *args, **kwargs)
def info(msg: Any, *args, **kwargs):
"""信息日志"""
logger.info(msg, *args, **kwargs)
def warning(msg: Any, *args, **kwargs):
"""警告日志"""
logger.warning(msg, *args, **kwargs)
def error(msg: Any, *args, **kwargs):
"""错误日志"""
logger.error(msg, *args, **kwargs)