import sys import os import logging import traceback from typing import Optional # 将项目根目录添加到 Python 路径中,确保可以正确导入项目模块 sys.path.insert(0, os.path.dirname(os.path.dirname(os.path.dirname(os.path.abspath(__file__))))) # 配置基础日志设置 logging.basicConfig( level=logging.INFO, format='%(asctime)s - %(name)s - %(levelname)s - %(message)s' ) # 创建模块级日志记录器 logger = logging.getLogger(__name__) def capture_exception( exception: Exception, module: str, function: Optional[str] = None, request_url: Optional[str] = None, request_method: Optional[str] = None, user_agent: Optional[str] = None, ip_address: Optional[str] = None, user_id: Optional[int] = None ): """ 捕获并记录异常信息到控制台 参数: - exception: 捕获到的异常对象 - module: 产生异常的模块名 - function: 产生异常的函数名(可选) - request_url: 请求URL(可选) - request_method: 请求方法(可选) - user_agent: 用户代理信息(可选) - ip_address: IP地址(可选) - user_id: 用户ID(可选) """ # 获取异常堆栈信息 tb_str = ''.join(traceback.format_exception(type(exception), exception, exception.__traceback__)) # 打印到控制台 logger.error(f"[{module}] {str(exception)}", exc_info=True) def info(message: str, module: str, function: Optional[str] = None): """ 记录INFO级别日志到控制台 参数: - message: 日志消息内容 - module: 产生日志的模块名 - function: 产生日志的函数名(可选) """ logger.info(f"[{module}] {message}") def warning(message: str, module: str, function: Optional[str] = None): """ 记录WARNING级别日志到控制台 参数: - message: 日志消息内容 - module: 产生日志的模块名 - function: 产生日志的函数名(可选) """ logger.warning(f"[{module}] {message}") def error(message: str, module: str, function: Optional[str] = None): """ 记录ERROR级别日志到控制台 参数: - message: 日志消息内容 - module: 产生日志的模块名 - function: 产生日志的函数名(可选) """ logger.error(f"[{module}] {message}") def debug(message: str, module: str, function: Optional[str] = None): """ 记录DEBUG级别日志到控制台 参数: - message: 日志消息内容 - module: 产生日志的模块名 - function: 产生日志的函数名(可选) """ logger.debug(f"[{module}] {message}")