- 新增light路由模块,提供灯牌脚本和答案的API接口 - 添加MongoDB连接工具类,支持异步和同步操作 - 实现灯牌服务层,包含数据缓存逻辑 - 移除数据库日志功能,简化日志模块 - 更新依赖项,添加starlette、anyio等MongoDB相关包
90 lines
2.6 KiB
Python
90 lines
2.6 KiB
Python
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}") |