fix: Use debug log to log DB queries

This commit is contained in:
Ankush Menat 2024-03-07 10:34:26 +05:30
parent a103335009
commit 13c74ec231
2 changed files with 13 additions and 13 deletions

View file

@ -184,7 +184,7 @@ class Database:
"""
if isinstance(query, MySQLQueryBuilder | PostgreSQLQueryBuilder):
frappe.errprint("Use run method to execute SQL queries generated by Query Engine")
frappe.log("Use run method to execute SQL queries generated by Query Engine")
debug = debug or getattr(self, "debug", False)
query = str(query)
@ -224,7 +224,7 @@ class Database:
self._cursor.execute(query, values)
except Exception as e:
if self.is_syntax_error(e):
frappe.errprint(f"Syntax error in query:\n{query} {values or ''}")
frappe.log(f"Syntax error in query:\n{query} {values or ''}")
elif self.is_deadlocked(e):
raise frappe.QueryDeadlockError(e) from e
@ -244,13 +244,13 @@ class Database:
# TODO: added temporarily
elif self.db_type == "postgres":
traceback.print_stack()
frappe.errprint(f"Error in query:\n{e}")
frappe.log(f"Error in query:\n{e}")
raise
elif isinstance(e, self.ProgrammingError):
if frappe.conf.developer_mode:
traceback.print_stack()
frappe.errprint(f"Error in query:\n{query, values}")
frappe.log(f"Error in query:\n{query, values}")
raise
if not (
@ -261,7 +261,7 @@ class Database:
if debug:
time_end = time()
frappe.errprint(f"Execution time: {time_end - time_start:.2f} sec")
frappe.log(f"Execution time: {time_end - time_start:.2f} sec")
self.log_query(query, values, debug, explain)
@ -333,7 +333,7 @@ class Database:
_query = _query or str(mogrified_query)
if explain and is_query_type(_query, "select"):
self.explain_query(_query)
frappe.errprint(_query)
frappe.log(_query)
if frappe.conf.logging == 2:
_query = _query or str(mogrified_query)
@ -381,14 +381,14 @@ class Database:
def explain_query(self, query, values=None):
"""Print `EXPLAIN` in error log."""
frappe.errprint("--- query explain ---")
frappe.log("--- query explain ---")
try:
self._cursor.execute(f"EXPLAIN {query}", values)
except Exception as e:
frappe.errprint(f"error in query explain: {e}")
frappe.log(f"error in query explain: {e}")
else:
frappe.errprint(json.dumps(self.fetch_as_dict(), indent=1))
frappe.errprint("--- query explain end ---")
frappe.log(json.dumps(self.fetch_as_dict(), indent=1))
frappe.log("--- query explain end ---")
def sql_list(self, query, values=(), debug=False, **kwargs):
"""Return data as list of single elements (first column).

View file

@ -187,9 +187,9 @@ class TestResourceAPI(FrappeAPITestCase):
with suppress_stdout():
response = self.get(self.resource_path(self.DOCTYPE), {"sid": self.sid, "debug": True})
self.assertEqual(response.status_code, 200)
self.assertIn("exc", response.json)
self.assertIsInstance(response.json["exc"], str)
self.assertIsInstance(eval(response.json["exc"]), list)
self.assertIn("_debug_messages", response.json)
self.assertIsInstance(response.json["_debug_messages"], str)
self.assertIsInstance(json.loads(response.json["_debug_messages"]), list)
def test_get_list_fields(self):
# test 6: fetch response with fields