Compare commits
3 Commits
6e9dc7f3ca
...
8541dc77ec
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
8541dc77ec | ||
|
|
666a073475 | ||
|
|
3337c751a5 |
38
main.py
38
main.py
@@ -1,25 +1,49 @@
|
||||
|
||||
from datetime import datetime
|
||||
import os
|
||||
import traceback
|
||||
import signal
|
||||
import tempfile
|
||||
import time
|
||||
from fastapi import FastAPI
|
||||
from fastapi.middleware.cors import CORSMiddleware
|
||||
from contextlib import asynccontextmanager
|
||||
from sqlalchemy import text
|
||||
import redis.asyncio as redis
|
||||
import subprocess
|
||||
import sys
|
||||
import os
|
||||
|
||||
from app.config import settings
|
||||
from app.database import engine
|
||||
from app.routes import router
|
||||
from app.logger import LoggerManager, get_main_logger
|
||||
from contextlib import asynccontextmanager
|
||||
from fastapi import FastAPI
|
||||
from fastapi.middleware.cors import CORSMiddleware
|
||||
import redis.asyncio as redis
|
||||
from sqlalchemy import text
|
||||
|
||||
|
||||
# 初始化日志系统
|
||||
LoggerManager.setup_logging()
|
||||
logger = get_main_logger()
|
||||
|
||||
def global_exception_handler(exc_type, exc_value, exc_traceback):
|
||||
if issubclass(exc_type, KeyboardInterrupt):
|
||||
sys.__excepthook__(exc_type, exc_value, exc_traceback)
|
||||
return
|
||||
|
||||
# 获取格式化的异常信息
|
||||
error_msg = "捕获到未处理的异常:\n"
|
||||
error_msg += f"异常类型: {exc_type.__name__}\n"
|
||||
error_msg += f"异常信息: {exc_value}\n"
|
||||
error_msg += "堆栈跟踪:\n"
|
||||
error_msg += ''.join(traceback.format_tb(exc_traceback))
|
||||
error_msg += f"异常时间: {datetime.now().strftime('%Y-%m-%d %H:%M:%S')}\n"
|
||||
error_msg += "-" * 50 + "\n"
|
||||
|
||||
# 输出到控制台
|
||||
print(error_msg)
|
||||
|
||||
# 输出到文件
|
||||
logger.error(error_msg)
|
||||
|
||||
# 注册全局异常处理器
|
||||
sys.excepthook = global_exception_handler
|
||||
|
||||
@asynccontextmanager
|
||||
async def lifespan(app: FastAPI):
|
||||
|
||||
Reference in New Issue
Block a user