¿Cómo puedo hacer que Django 1.0 escriba todos los errores en la consola o en un archivo de registro cuando se ejecuta runserver en modo de depuración?
Intenté usar una clase de middleware con la función process_exception como se describe en la respuesta aceptada a esta pregunta:
¿Cómo se registran los errores del servidor en los sitios de django?
Se llama a la función process_exception para algunas excepciones (por ejemplo: assert (False) en views.py) pero process_exception no recibe ningún otro error, como ImportErrors (por ejemplo: import thisclassdoesnotexist in urs.py). Soy nuevo en Django / Python. ¿Esto se debe a alguna distinción entre los errores en tiempo de ejecución y en tiempo de compilación? Pero entonces esperaría que runserver se quejara si se trataba de un error en tiempo de compilación y no es así.
He visto la fantástica presentación de Simon Willison sobre la depuración de Django ( http://simonwillison.net/2008/May/22/debugging/ ) pero no vi una opción que me funcionara bien.
En caso de que sea relevante, estoy escribiendo una aplicación de Facebook y Facebook enmascara errores HTTP 500 con su propio mensaje en lugar de mostrar la increíblemente informativa página de Django. Por lo tanto, necesito una forma para que se escriban todos los tipos de errores en la consola o el archivo.
Editar: supongo que mi expectativa es que si Django puede devolver una página de error 500 con muchos detalles cuando tengo una importación incorrecta (ImportError) en urls.py, debería ser capaz de escribir el mismo detalle en la consola o en un archivo sin tener que agregar cualquier manejo de excepción adicional al código. Nunca he visto el manejo de excepciones en las declaraciones de importación.
Gracias, Jeff













