집 >데이터 베이스 >MySQL 튜토리얼 >디버깅 및 모니터링을 위해 관리 쿼리를 포함한 모든 Django SQL 쿼리를 어떻게 기록할 수 있나요?
모든 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 중국어 웹사이트의 기타 관련 기사를 참조하세요!