Files
ailine/backend/app/logger.py

49 lines
1.4 KiB
Python
Raw Normal View History

2026-04-21 11:02:16 +08:00
"""
统一的日志模块 - 基于环境变量控制日志级别
类似 C# 的条件编译效果,开发时打印详细调试信息,生产环境只输出关键信息
"""
import os
from .config import LOG_LEVEL, DEBUG
import logging
from typing import Any
# 根据环境变量控制是否显示详细调试信息
DEBUG_MODE = DEBUG
# 创建统一的日志器
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)