Estoy un poco confundido sobre cómo django maneja el registro. Tengo esta configuración para registradores en mi configuración:
LOGGING = { ... 'handlers': { 'console': { 'class': 'logging.StreamHandler', 'formatter': 'verbose', }, 'file': { 'level': 'DEBUG', 'class': 'logging.handlers.RotatingFileHandler', 'filename': LOG_BASE_DIRECTORY + '/django.log', 'maxBytes': LOGFILE_SIZE, 'backupCount': LOGFILE_COUNT, 'formatter': 'verbose' }, 'mail_admins': { 'level': 'ERROR', #'filters': ['require_debug_false'], 'class': 'django.utils.log.AdminEmailHandler' } }, 'loggers': { 'django': { 'handlers': ['file','mail_admins'], 'level': 'INFO', 'propagate': True, }, 'app1': { 'handlers': ['file','mail_admins'], 'level': 'DEBUG', 'propagate': True, }, ... }, }Como se puede ver, tengo 2 controladores definidos para django y registros de aplicaciones, archivos y mail_admins. El nivel de registro para el archivo es depuración. Por lo tanto, asumo que todos los registros que son de depuración y superiores utilizarán este controlador. El nivel de mail_admins es error. Sin embargo, el problema que estoy viendo es que en caso de 500 errores mientras el controlador de correo electrónico se ejecuta y envía el correo, no hay registro en el archivo.
Para registrar errores, debe registrarlos en su código. Algo como esto
import logging try: # your code here except Exception as e: logging.getLogger("logger_name").error(repr(e))consulte este enlace de documento oficial para ver el mismo o este artículo para ver el video y el código de trabajo de github.