sqlalchemy 실행로그를 출력하는 방법
1. logger 설정
Logging 설정으로 로그를 남길 수 있다.
logging.basicConfig()
logging.getLogger("sqlalchemy.engine").setLevel(logging.INFO)
실행 결과
2025-04-15 06:51:43 +0900 - sqlalchemy.engine.Engine - INFO - SELECT blog.blog_id, blog.name, ...
FROM blog
WHERE blog.user_id = %(c_user_id_1)s
LIMIT %(param_1)s, %(param_2)s
2025-04-15 06:51:43 +0900 - sqlalchemy.engine.Engine - INFO - [generated in 0.00037s] {'c_user_id_1': 'hong_1', 'param_1': 0, 'param_2': 100}
2. echo 활성화
create_engine할 때 echo를 True로 설정하면 로그를 남길 수 있다.
engine = create_engine(
connection_string,
echo=True,
...
)
실행 결과
2025-04-15 06:51:43 +0900 - sqlalchemy.engine.Engine - INFO - SELECT blog.blog_id, blog.name, ...
FROM blog
WHERE blog.user_id = %(c_user_id_1)s
LIMIT %(param_1)s, %(param_2)s
2025-04-15 06:51:43 +0900 - sqlalchemy.engine.Engine - INFO - [generated in 0.00037s] {'c_user_id_1': 'hong_1', 'param_1': 0, 'param_2': 100}
3. SQL 쿼리 로깅
compiled_statement = statement.compile(compile_kwargs={"literal_binds": True})
self.logger.info(f"실행되는 SQL 쿼리: {compiled_statement}")
실행 결과
2025-04-15 06:51:43 +0900 - sqlalchemy.engine.Engine - INFO - SELECT blog.blog_id, blog.name, ...
FROM blog
WHERE blog.user_id = 'hong_1'
LIMIT 0, 100
반응형