내가 작성한 ORM이 실제로 어떤 SQL 쿼리를 날리는지 보고 싶을 때
Django Documentation - Logging
#settings.py
LOGGING = {
'disable_existing_loggers': False,
'version': 1,
'handlers': {
'console': {
'class': 'logging.StreamHandler',
'level': 'DEBUG',
},
},
'loggers': {
'django.db.backends': {
'handlers': ['console'],
'level': 'DEBUG',
'propagate': False,
},
},
}
로그를 파일로 저장하고 싶을 때(해당 파일은 gitignore필수)
#settings.py
LOGGING = {
'disable_existing_loggers': False,
'version': 1,
'formatters': {
'verbose': {
'format': '{asctime} {levelname} {message}',
'style': '{'
},
},
'handlers': {
'console': {
'class' : 'logging.StreamHandler',
'formatter' : 'verbose',
'level' : 'DEBUG',
},
'file': {
'level' : 'DEBUG',
'class' : 'logging.FileHandler',
'formatter' : 'verbose',
'filename' : 'debug.log',
},
},
'loggers': {
'django.db.backends': {
'handlers' : ['console','file'],
'level' : 'DEBUG',
'propagate': False,
},
},
}
shell에서 확인하는 방법
>>> queryset = Event.objects.all()
>>> str(queryset.query)
SELECT "events_event"."id", "events_event"."epic_id",
"events_event"."details", "events_event"."years_ago"
FROM "events_event"