Quijost

Por favor ingresa o regístrate.

Ingresar con nombre de usuario, contraseña y duración de la sesión
Búsqueda Avanzada  

Noticias:

Quijost.com - Hosting Gratis al alcance de tus manos

Autor Tema: Gestionar errores 500 con manejadores Django  (Leído 16223 veces)

0 Usuarios y 1 Visitante están viendo este tema.

shakaran

  • Soporte
  • Administrator
  • Usuario profesional
  • *****
  • Karma: +12/-0
  • Desconectado Desconectado
  • Sexo: Masculino
  • Mensajes: 487
  • Un buen soporte lo es todo
    • Ver Perfil
    • Shakaran
Gestionar errores 500 con manejadores Django
« en: Agosto 17, 2012, 15:56:37 pm »

Este post es un tutorial para nuestros clientes iniciados en Django.

Hemos detectado que muchos de nuestros clientes tienen problemas de configuraciones al establecer su primer proyecto Django y tenemos un alto índice de consultas al soporte por este motivo.

Para facilitar que ellos mismos puedan resolver sus errores de programación y no tengan que esperar respuesta del soporte, facilitamos una buena forma de configurar la gestión de errores 500 mediante el setting.py de Django.

En un proyecto Django, puede encontrarse la sección LOGGING siguiente:

Código: [Seleccionar]
# A sample logging configuration. The only tangible logging
# performed by this configuration is to send an email to
# the site admins on every HTTP 500 error.
# See http://docs.djangoproject.com/en/dev/topics/logging for
# more details on how to customize your logging configuration.
LOGGING = {
    'version': 1,
    'disable_existing_loggers': True,
    'handlers': {
        'mail_admins': {
            'level': 'ERROR',
            'class': 'django.utils.log.AdminEmailHandler'
        },
        'console':{
            'level':'DEBUG',
            'class':'logging.StreamHandler',
        },
        'file':{
            'level': 'INFO',
            'class': 'logging.FileHandler',
            'filename': 'debug.log',
        },
        'file':{
            'level': 'ERROR',
            'class': 'logging.FileHandler',
            'filename': '/home/usuarioquijost/public_html/proyecto/error.log',
        },

    },
    'loggers': {
        'django.request': {
            'handlers': ['mail_admins', 'file'],
            'level': 'ERROR',
            'propagate': True,
        },
    }
}

En caso de producirse un error 500, la sección ejecutada de LOGGING sería:

Código: [Seleccionar]
'file':{
            'level': 'ERROR',
            'class': 'logging.FileHandler',
            'filename': '/home/usuarioquijost/public_html/proyecto/error.log',
        },

En este caso, al establecer el manejador como archivo, la salida del error se escribirá en /home/usuarioquijost/public_html/proyecto/error.log

Por lo que es necesario que dicho archivo tenga permisos de escritura. Puede establecerse dichos permisos con:

chmod 777 /home/usuarioquijost/public_html/proyecto/error.log

Debe tener en cuenta, que dichos permisos son poco restrictivos y pueden reducirse a unos permisos más restrictivos de archivo, pero en caso de depuración ahorraran problemas.

También existe la posibilidad de establecer otros manejadores, que envien los errores por email. Para más información:

https://docs.djangoproject.com/en/dev/topics/logging/
https://docs.djangoproject.com/en/dev/ref/signals/#got-request-exception
https://docs.djangoproject.com/en/dev/topics/http/middleware/#process-exception
En línea
Ángel Guzmán Maeso
Quijost Founder - Backend Engineer & Main support
 

Página generada en 0.089 segundos con 37 consultas.