Python/sqlalchemy

sqlalchemy logging 옵션 끄기

검정비니 2024. 1. 2. 22:11
728x90
반응형

sqlalchemy를 처음 사용할 때에는 계속 나오는 로그들을 어떻게 없앨 수 있을지에 대해서 이리저리 구글링을 많이 해보게 된다.

스택오버플로우를 봐도 잘못된 답변들도 보이고, 결국 30분간 이리저리 삽질을 하다가 나름의 답을 찾아냈다.

 

아래 코드와 같이 4개의 토픽에 대해서 로그레벨을 ERROR로 설정해놓으면 데이터베이스 에러로 인한 상황을 제외하고는 모든 디버깅 로그나 info 로그가 다 필터링되게 된다.

import logging
from typing import Any, Generator

# from sqlalchemy.sql import text
from sqlalchemy import Column, Integer, MetaData, Table, Text, select
from sqlmodel import Session, SQLModel, create_engine

logging.basicConfig()
logging.getLogger('sqlalchemy.engine').setLevel(logging.ERROR)
logging.getLogger('sqlalchemy.dialects').setLevel(logging.ERROR)
logging.getLogger('sqlalchemy.pool').setLevel(logging.ERROR)
logging.getLogger('sqlalchemy.orm').setLevel(logging.ERROR)

database_url = "YOUR_DB_URL"
engine = create_engine(
    database_url,
    echo=False
)

 

또한, create_engine 호출 시 echo로 False를 주면 에코 메시지 역시 출력되지 않게 된다.

 

반응형