Skip to content
This repository was archived by the owner on Aug 19, 2025. It is now read-only.

Commit 3028c11

Browse files
Support optional colorized logs
1 parent e8cfdb4 commit 3028c11

4 files changed

Lines changed: 12 additions & 6 deletions

File tree

databases/backends/mysql.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@
1010
from sqlalchemy.sql import ClauseElement
1111
from sqlalchemy.types import TypeEngine
1212

13-
from databases.core import DatabaseURL
13+
from databases.core import DatabaseURL, LOG_EXTRA
1414
from databases.interfaces import ConnectionBackend, DatabaseBackend, TransactionBackend
1515

1616
logger = logging.getLogger("databases")
@@ -180,7 +180,7 @@ def _compile(
180180
)
181181

182182
query_message = compiled.string.replace(" \n", " ").replace("\n", " ")
183-
logger.debug("Query: %s Args: %s", query_message, repr(args))
183+
logger.debug("Query: %s Args: %s", query_message, repr(args), extra=LOG_EXTRA)
184184
return compiled.string, args, CompilationContext(execution_context)
185185

186186
@property

databases/backends/postgres.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99
from sqlalchemy.sql.schema import Column
1010
from sqlalchemy.types import TypeEngine
1111

12-
from databases.core import DatabaseURL
12+
from databases.core import DatabaseURL, LOG_EXTRA
1313
from databases.interfaces import ConnectionBackend, DatabaseBackend, TransactionBackend
1414

1515
logger = logging.getLogger("databases")
@@ -193,7 +193,7 @@ def _compile(self, query: ClauseElement) -> typing.Tuple[str, list, tuple]:
193193
]
194194

195195
query_message = compiled_query.replace(" \n", " ").replace("\n", " ")
196-
logger.debug("Query: %s Args: %s", query_message, repr(tuple(args)))
196+
logger.debug("Query: %s Args: %s", query_message, repr(tuple(args)), extra=LOG_EXTRA)
197197
return compiled_query, args, compiled._result_columns
198198

199199
@property

databases/backends/sqlite.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99
from sqlalchemy.sql import ClauseElement
1010
from sqlalchemy.types import TypeEngine
1111

12-
from databases.core import DatabaseURL
12+
from databases.core import DatabaseURL, LOG_EXTRA
1313
from databases.interfaces import ConnectionBackend, DatabaseBackend, TransactionBackend
1414

1515
logger = logging.getLogger("databases")
@@ -155,7 +155,7 @@ def _compile(
155155
)
156156

157157
query_message = compiled.string.replace(" \n", " ").replace("\n", " ")
158-
logger.debug("Query: %s Args: %s", query_message, repr(tuple(args)))
158+
logger.debug("Query: %s Args: %s", query_message, repr(tuple(args)), extra=LOG_EXTRA)
159159
return compiled.string, args, CompilationContext(execution_context)
160160

161161
@property

databases/core.py

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,12 @@
1717
else: # pragma: no cover
1818
from aiocontextvars import ContextVar
1919

20+
try: # pragma: no cover
21+
import click
22+
LOG_EXTRA = {"color_message": "Query: " + click.style("%s", bold=True) + " Args: %s"}
23+
except ImportError: # pragma: no cover
24+
LOG_EXTRA = None
25+
2026

2127
logger = logging.getLogger("databases")
2228

0 commit comments

Comments
 (0)