>데이터 베이스 >MySQL 튜토리얼 >Django에서 SQL 쿼리를 효과적으로 기록하는 방법은 무엇입니까?

Django에서 SQL 쿼리를 효과적으로 기록하는 방법은 무엇입니까?

Linda Hamilton
Linda Hamilton원래의
2025-01-15 21:29:44766검색

How to Effectively Log SQL Queries in Django?

Django SQL 쿼리 로깅에 대한 자세한 설명

Django는 데이터베이스 기반 애플리케이션을 구축하는 데 널리 사용되는 Python 웹 프레임워크입니다. 최적의 성능을 보장하고 데이터베이스 문제를 해결하려면 애플리케이션에서 실행되는 모든 SQL 쿼리를 기록해야 하는 경우가 많습니다. 이 가이드는 Django에서 이러한 로깅을 구현하는 방법을 단계별로 안내합니다.

위치 쿼리 로깅 코드

SQL 쿼리를 기록하려면 Django 프로젝트의 settings.py 파일을 편집해야 합니다. 이 파일에서 LOGGING 사전을 찾아 다음 코드 조각에 따라 수정합니다.

<code class="language-python">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>

통합 로깅 구성

제공된 코드 조각을 LOGGING 사전과 병합한 후 Django는 자동으로 모든 SQL 쿼리를 콘솔에 기록합니다. 쿼리를 별도의 파일(예: all-sql.log)로 리디렉션하려면 handlers 섹션에 파일 핸들러를 추가해야 합니다. 다음은 수정된 구성의 예입니다.

<code class="language-python">LOGGING = {
    'version': 1,
    'filters': {
        'require_debug_true': {
            '()': 'django.utils.log.RequireDebugTrue',
        }
    },
    'handlers': {
        'console': {
            'level': 'DEBUG',
            'filters': ['require_debug_true'],
            'class': 'logging.StreamHandler',
        },
        'file': {
            'level': 'DEBUG',
            'class': 'logging.FileHandler',
            'filename': '/path/to/all-sql.log', # 请替换为您的日志文件路径
        }
    },
    'loggers': {
        'django.db.backends': {
            'level': 'DEBUG',
            'handlers': ['file'],
        }
    }
}</code>

/path/to/all-sql.log을 실제 로그 파일 경로로 바꿔야 합니다. 구성이 완료되면 모든 데이터베이스 쿼리가 지정된 파일에 기록됩니다.

위 내용은 Django에서 SQL 쿼리를 효과적으로 기록하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.