diff options
author | John Nduli | 2024-06-11 09:19:38 +0300 |
---|---|---|
committer | BonfaceKilz | 2024-06-12 11:49:43 +0300 |
commit | 47971099b23830e17509f1aded1faf9e2381d7c8 (patch) | |
tree | 02a905316eadf438b2ea2e84d17a0a9e5446b0ec /gn3 | |
parent | f35dd4a230f0dc316e5b097d8cfbf350d8d440e5 (diff) | |
download | genenetwork3-47971099b23830e17509f1aded1faf9e2381d7c8.tar.gz |
fix: log errors when an exception occurs due to db_utils
Diffstat (limited to 'gn3')
-rw-r--r-- | gn3/db_utils.py | 8 |
1 files 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() |