kidsnote / django-sqllog

[BE] sql log
0 stars 0 forks source link

django-sqllog

0. 주의

이 저장소는 공개(public) 저장소입니다.
민감한 정보가 유출되지 않도록 주의 바랍니다.

1. 목적

django.db.connectcursor를 통해 데이터베이스 서버에 전달되는 SQL Query를 로깅합니다.

2. 기능

3. 로깅 항목

4. 설치

a. https 프로토콜 사용

pip install git+https://github.com/kncray/django-sqllog.git@latest

github 보안 정책에 따라 비밀번호를 이용할 수 없는 경우,

pip install git+https://{YOUR-TOKEN}@github.com/kncray/django-sqllog.git@latest

b. SSH 프로토콜 사용

pip install git+ssh://git@github.com/kncray/django-sqllog.git@latest

5. 설정

a. settings.INSTALLED_APPS 수정

INSTALLED_APPS += [
    'sqllog',
]

b. settings.SQLLOG 생성

SQLLOG = {
    'ENABLED': os.getenv('SQLLOG_ENABLED', True),
    'ENABLE_SENTRY': os.getenv('SQLLOG_ENABLE_SENTRY', False),
    'CONFIG_NAME': 'testing',
    'ENV_FILE_PATH': f'{BASE_DIR}/runtime/sqllog.ini',
    'LOGGING': {
        'formatters': {
            'sqllog': {
                'format': '%(levelname)s %(asctime)s %(message)s',
            },
        },
        'handlers': {
            'sqllog': {
                'class': 'logging.FileHandler',
                'filename': f'{LOG_ROOT}/sql.log',
                'formatter': 'sqllog',
            },
        },
        'loggers': {
            'sqllog': {
                'handlers': ['sqllog'],
                'level': 'INFO',
                'propagate': False,
            },
        }
    }
}

6. 결과

screenshot.20230308T174525.png

7. 기타 참고 사항