From 731f9a45df0b8be035ef5609457d2e0b9ef8f982 Mon Sep 17 00:00:00 2001 From: Untone Date: Wed, 21 Feb 2024 13:02:49 +0300 Subject: [PATCH] logger-timing-logix-fix --- services/db.py | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/services/db.py b/services/db.py index dc4cb237..de876fdd 100644 --- a/services/db.py +++ b/services/db.py @@ -25,15 +25,20 @@ Base = declarative_base() # Перехватчики для журнала запросов SQLAlchemy @event.listens_for(Engine, "before_cursor_execute") def before_cursor_execute(conn, cursor, statement, parameters, context, executemany): - conn.info.setdefault("query_start_time", []).append(time.time()) + if "query_start_time" not in conn.info: + conn.info["query_start_time"] = [] + conn.info["query_start_time"].append(time.time()) @event.listens_for(Engine, "after_cursor_execute") def after_cursor_execute(conn, cursor, statement, parameters, context, executemany): - total = time.time() - conn.info["query_start_time"].pop(-1) - stars = "*" * math.floor(total * 1000) - if stars: - logger.debug(f"{statement}\n{stars} {total*1000} s\n") + if "query_start_time" in conn.info and conn.info["query_start_time"]: + total = time.time() - conn.info["query_start_time"].pop() + stars = "*" * math.floor(total * 1000) + if stars: + logger.debug(f"{statement}\n{stars} {total*1000} s\n") + else: + logger.error("query_start_time is missing or empty.") def local_session(src=""):