Skip to content

Commit ab90095

Browse files
author
ColeMeikle
committed
Changed SQLAlchemy to use loguru logger with custom level(VERBOSE)
1 parent 4af5a8d commit ab90095

File tree

3 files changed

+21
-3
lines changed

3 files changed

+21
-3
lines changed

gs/backend/api/backend_setup.py

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,7 @@
1+
import logging
2+
13
from fastapi import FastAPI
4+
from loguru import logger
25

36
from gs.backend.api.middleware.auth_middleware import AuthMiddleware
47
from gs.backend.api.middleware.cors_middleware import add_cors_middleware
@@ -33,3 +36,18 @@ def setup_middlewares(app: FastAPI) -> None:
3336
add_cors_middleware(app) # Cors middleware should be added first
3437
app.add_middleware(AuthMiddleware)
3538
app.add_middleware(LoggerMiddleware, excluded_endpoints=[])
39+
40+
41+
def setup_logging() -> None:
42+
"""Sets all logs from SQLAlchemy to the custom logger level VERBOSE"""
43+
verbose_level = 15 # DEBUG=10, INFO=20
44+
logger.level("VERBOSE", no=verbose_level, color="<blue>")
45+
46+
class SQLAlchemyHandler(logging.Handler):
47+
def emit(self, record: logging.LogRecord) -> None:
48+
logger.log("VERBOSE", record.getMessage())
49+
50+
sqlalchemy_logger = logging.getLogger("sqlalchemy.engine")
51+
sqlalchemy_logger.setLevel(logging.INFO)
52+
sqlalchemy_logger.addHandler(SQLAlchemyHandler())
53+
sqlalchemy_logger.propagate = False

gs/backend/data/database/engine.py

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,8 +13,7 @@ def get_db_engine() -> Engine:
1313
1414
:return: engine
1515
"""
16-
# TODO: Add loguru to sqlalchemy.engine logger
17-
return create_engine(DATABASE_CONNECTION_STRING, echo=True)
16+
return create_engine(DATABASE_CONNECTION_STRING)
1817

1918

2019
def get_db_session() -> Session:

gs/backend/main.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,9 @@
11
from fastapi import FastAPI
22

3-
from gs.backend.api.backend_setup import setup_middlewares, setup_routes
3+
from gs.backend.api.backend_setup import setup_logging, setup_middlewares, setup_routes
44
from gs.backend.api.lifespan import lifespan
55

66
app = FastAPI(lifespan=lifespan)
7+
setup_logging()
78
setup_routes(app)
89
setup_middlewares(app)

0 commit comments

Comments
 (0)