Django 애플리케이션에서 실행되는 모든 SQL 쿼리를 캡처하는 것은 디버깅, 성능 분석 및 보안 감사에 매우 중요합니다. 이를 달성하기 위한 포괄적인 가이드는 다음과 같습니다.
settings.py 파일을 수정하고 다음 스니펫을 LOGGING 필드에 병합합니다.
<code class="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>
이 구성은 모든 Django 데이터베이스 백엔드 메시지(SQL 쿼리)를 라우팅합니다. )을 콘솔 핸들러에 전달합니다. 기본적으로 이는 DEBUG 모드가 활성화된 경우에만 표시됩니다.
all-sql.log라는 파일의 모든 SQL 문을 캡처하려면 다음 구성을 추가할 수 있습니다.
<code class="python">HANDLERS = { ... # existing handlers 'file': { 'level': 'DEBUG', 'class': 'logging.FileHandler', 'filename': '/path/to/all-sql.log', # adjust file path as needed } }</code>
마지막으로 로거 구성에 새 파일 핸들러를 추가합니다.
<code class="python">LOGGERS = { ... # existing loggers 'django.db.backends': { 'level': 'DEBUG', 'handlers': ['console', 'file'], # add 'file' handler } }</code>
이러한 변경 사항을 적용하면 모든 SQL 쿼리가 콘솔(DEBUG가 활성화된 경우)과 지정된 파일 모두에 기록됩니다. 필요에 맞게 filename 매개변수의 파일 경로를 조정합니다. 로깅 기능을 활성화하려면 Django 애플리케이션을 다시 시작하세요.
위 내용은 Django에서 포괄적인 SQL 쿼리 로깅을 구현하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!