From 47971099b23830e17509f1aded1faf9e2381d7c8 Mon Sep 17 00:00:00 2001 From: John Nduli Date: Tue, 11 Jun 2024 09:19:38 +0300 Subject: fix: log errors when an exception occurs due to db_utils --- gn3/db_utils.py | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/gn3/db_utils.py b/gn3/db_utils.py index e4dc81f..e08caf0 100644 --- a/gn3/db_utils.py +++ b/gn3/db_utils.py @@ -1,6 +1,7 @@ """module contains all db related stuff""" import contextlib -from typing import Any, Iterator, Protocol, Tuple +import logging +from typing import Any, Iterator, Optional, Protocol, Tuple from urllib.parse import urlparse import MySQLdb as mdb import xapian @@ -24,8 +25,10 @@ class Connection(Protocol): @contextlib.contextmanager -def database_connection(sql_uri) -> Iterator[Connection]: +def database_connection(sql_uri: str, logger: Optional[logging.Logger] = None) -> Iterator[Connection]: """Connect to MySQL database.""" + if logger is None: + logger = logging.getLogger(__file__) host, user, passwd, db_name, port = parse_db_url(sql_uri) connection = mdb.connect(db=db_name, user=user, @@ -35,6 +38,7 @@ def database_connection(sql_uri) -> Iterator[Connection]: try: yield connection except mdb.Error as _mbde: + logger.error("DB error encountered", exc_info=1) connection.rollback() finally: connection.commit() -- cgit 1.4.1