From 3097c33e44877f8ce852af784c8cdade97511379 Mon Sep 17 00:00:00 2001 From: Untone Date: Sun, 25 Feb 2024 00:06:54 +0300 Subject: [PATCH] full-traceback-on-sawarning --- resolvers/stat.py | 2 +- services/db.py | 16 ++++++++++++++++ 2 files changed, 17 insertions(+), 1 deletion(-) diff --git a/resolvers/stat.py b/resolvers/stat.py index 75dcea9e..b82769a7 100644 --- a/resolvers/stat.py +++ b/resolvers/stat.py @@ -1,4 +1,3 @@ - from sqlalchemy import func, distinct, select, join from sqlalchemy.orm import aliased @@ -132,5 +131,6 @@ def query_follows(author_id: int): } except Exception as e: import traceback + logger.debug(traceback.format_exc()) raise Exception(e) diff --git a/services/db.py b/services/db.py index 818a00a3..6463c3e9 100644 --- a/services/db.py +++ b/services/db.py @@ -11,6 +11,22 @@ from sqlalchemy.orm import Session from sqlalchemy.sql.schema import Table from services.logger import root_logger as logger from settings import DB_URL +import warnings +from sqlalchemy import exc + + +# Функция для вывода полного трейсбека при предупреждениях +def warning_with_traceback(message, category, filename, lineno, line=None): + import traceback + + log = warnings._formatwarnmsg(message, category, filename, lineno, line) + log += ''.join(traceback.format_stack()) + return log + + +# Установка функции вывода трейсбека для предупреждений SQLAlchemy +warnings.showwarning = warning_with_traceback +warnings.simplefilter('always', exc.SAWarning) # Создание региона кэша с TTL 300 секунд cache_region = make_region().configure('dogpile.cache.memory', expiration_time=300)