Query LOGGING

sunwoo·2020년 12월 27일
0

Django

목록 보기
4/5
post-thumbnail

Logging

DB를 실시간으로 Query를 추적, 모니터링 하는 방법.
즉, log를 직접적으로 볼 수 있다.

log를 직접 확인 가능하면?

  • 버그 수집 및 트래킹.
  • 롤백 및 대응 등에 대한 의사결정 판단의 근거로 활용.
  • 특정 기능에 대한 사용자 진단.

ex)

Loggers

  • Logger는 logging시스템의 진입점으로 메세지를 쓸 수 있는 버컷.
  • DEBUG : 디버깅을 위한 정보
  • INFO : 일반 시스템 정보
  • WARNING : minor한 문제에 대한 정보
  • ERROR : major한 문제에 대한 정보
  • CRITICAL : critical한 문제에 대한 정보

설정 방법

LOGGING = {
    'version': 1,
    'disable_existing_loggers': False,
    'formatters': {
        'fileFormat': {
            'format': '[%(asctime)s] %(levelname)s [%(name)s:%(lineno)s] %(message)s',
            'datefmt': '%d/%b/%Y %H:%M:%S'
        }
    },
    'handlers': {
        'file': {
            'level': 'DEBUG',
            'class': 'logging.FileHandler',
            'filename': join(BASE_DIR, 'logs/logfile.log'),
            'formatter': 'fileFormat'
        },
        'console': {
            'level': 'DEBUG',
            'class': 'logging.StreamHandler',
        },

    },
    'loggers': {
        'post': {
            'handlers': ['file', 'console'],
            'level': 'DEBUG',
        },
        'django.db.backends': {
            'handlers': ['file', 'console'],
            'level': 'DEBUG',
        },
    }
}

  • version : 버전 정보로서 현재까지 1정보 밖에 존재하지 않는다.

  • disable_existing_loggers : True일 경우 기본 구성의 logger들이 비활성화된다.

  • formatters : 로그 데이터들을 텍스트로 렌더링 되는데 그 때의 형식을 지정한다.

  • handlers : 어떤 방식으로 logging 할지를 지정할 수 있다. 위 예시에서는 두 개의 handlers가 존재하여 file에 기록하는 file handlersconsole에 출력하는 console handlers 가 있다.

  • loggers : logger를 정의한다. 앱 이름을 통해 지정할 수 도 있으며 내장 logger를 사용할 수 도 있다.
    위의 django.db.backends 는 db와의 상호작용과 관련된 메세지로 sql을 확인할 수 있다.

profile
고영희를 모시고 있는 Backend 개발자 🐈

0개의 댓글