Files
information-sign-backend/src/utils/logger.py
chenpanliang 6e5b59bde6 feat(light): 添加信息灯牌功能及相关组件
- 新增light路由模块,提供灯牌脚本和答案的API接口
- 添加MongoDB连接工具类,支持异步和同步操作
- 实现灯牌服务层,包含数据缓存逻辑
- 移除数据库日志功能,简化日志模块
- 更新依赖项,添加starlette、anyio等MongoDB相关包
2025-12-16 13:31:04 +08:00

90 lines
2.6 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.
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}")