> 데이터 베이스 > MySQL 튜토리얼 > 디버깅 및 모니터링을 위해 관리 쿼리를 포함한 모든 Django SQL 쿼리를 어떻게 기록할 수 있나요?

디버깅 및 모니터링을 위해 관리 쿼리를 포함한 모든 Django SQL 쿼리를 어떻게 기록할 수 있나요?

Linda Hamilton
풀어 주다: 2025-01-15 21:14:52
원래의
129명이 탐색했습니다.

How Can I Log All Django SQL Queries, Including Admin Queries, for Debugging and Monitoring?

모든 Django SQL 쿼리 차단 및 로깅

질문:

Django 애플리케이션에서 실행되는 모든 SQL 쿼리에 대한 로깅은 디버깅, 성능 분석 및 보안 모니터링에 유용합니다. Django 관리 인터페이스에서 생성된 모든 SQL 문을 포함하여 이를 어떻게 달성할 수 있나요?

해결책:

모든 SQL 쿼리를 기록하려면 다음 지시어를 사용하여 settings.py의 LOGGING 구성을 강화하세요.

<code>LOGGING = {
    'version': 1,
    'filters': {
        'require_debug_true': {
            '()': 'django.utils.log.RequireDebugTrue',
        }
    },
    'handlers': {
        'console': {
            'level': 'DEBUG',
            'filters': ['require_debug_true'],
            'class': 'logging.StreamHandler',
        }
    },
    'loggers': {
        'django.db.backends': {
            'level': 'DEBUG',
            'handlers': ['console'],
        }
    }
}</code>
로그인 후 복사

지침:

이 구성은 로그 메시지를 콘솔에 인쇄하는 "콘솔"이라는 새 핸들러를 추가하지만 DEBUG 모드가 활성화된 경우에만 가능합니다. 'django.db.backends' 로거는 DEBUG 수준의 모든 SQL 쿼리를 이 핸들러에 기록하도록 구성됩니다.

사용법:

모든 SQL 쿼리를 콘솔 대신 파일에 쓰려면 "handlers" 섹션을 다음과 같이 수정하세요.

<code>'handlers': {
    'file': {
        'level': 'DEBUG',
        'filters': ['require_debug_true'],
        'class': 'logging.FileHandler',
        'filename': '/path/to/all-sql.log',
    }
}</code>
로그인 후 복사

이렇게 하면 모든 디버그 로그(SQL 쿼리 포함)가 지정된 파일로 리디렉션됩니다.

위 내용은 디버깅 및 모니터링을 위해 관리 쿼리를 포함한 모든 Django SQL 쿼리를 어떻게 기록할 수 있나요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿