Django- DB QUERY LOGGING

0

DJANGO

목록 보기
6/9
post-thumbnail

출처:

LOGGING 하게 된 배경 😭

DJANGO에서 Prefetch_relatedSelect_related을 공부하던 와중에 내가 만든 query가 DB에 요청하는 작업이 대체 얼마나 걸리는 건지 눈으로 보고 싶었다. 그래서 방법을 찾던 와중에 "LOGGING" 이란 녀석을 찾았고, 모르시는 분들이 계실수도 있기 때문에 공유할려고 합니다.

LOGGING 설정 추가 ⚙️

일단 저의 프로젝트 명은 'gitomp'이기때문에 'gitomp' 앱 밑에 settings.py에 프로젝트에 대한 설정을 바꾸겠습니다.

꿀팁!

  • 어차피 다른 프로젝트할때도 LOGGING을 하는게 좋을거같으니 저처럼 my_settings.py 라는 파일을 만드시고 거기에 LOGGING 설정하는 코드를 추가하면, 나중에 my_settings.py 만 가져가서 import 해주면 편하겠죠 ?
  • 한줄요약 : 그냥 다음에 또 똑같이 쓸거니깐 한 파일에 적고 옮기는 식으로 하자 !
  • 하지만, my_settings.py를 만드시는게 귀찮으시다면 밑에 코드를 그냥 프로젝트앱이름/settings.py에 적으셔도 무방합니다.

LOGGING 기본설정 코드

LOGGING = {
    'version': 1		#logging 버젼
    'disable_existing_loggers': False, # 원래 있던 로깅들을 그래도 냅둠 # 만약 True면 못쓴다는 거겠죠? ㅎ
    'handlers': {					# 로깅 메세지에서 일어나는 일을 결정하는 녀석이라고 장고공식문서에 나와있는데, 아직 무슨말인지는 저도 모르겠네요 ㅎㅎ 
        'console': {
            'level': 'DEBUG',
            'class': 'logging.StreamHandler',
        }
    },
    'loggers': {				# 로깅을 console에 띄울지 ... 다른데 띄울지 그냥 DEBUG용으로 레벨을 설정할 수 도있고, 
        'django.db.backends': {
            'handlers': ['console'],
            'level': 'DEBUG',
        },
    }
}

결과 두근두근...🌈

다음과 같이 query 가 어떻게 DB를 치고있는지 눈으로 확인이 가능하답니다 ! 이걸로 이제 prefetch랑 select_related 메소드를 사용했을때 효율성을 검사하기 편하겠네요 !
자세한 내용은 장고의 Logging¶DJANGO의 내용을 확인해주세요 ~!
🌈

profile
# 개발 # 컴퓨터공학

0개의 댓글