9
votes

Django Exception non gérée

Il fonctionne sous Debug = Mode TRUE. Parfois, il peut jetter un message d'erreur avec des informations de trace lorsque vous rencontrez une erreur, mais parfois, il affiche simplement les lignes suivantes:

Unhandled Exception

An unhandled exception was thrown by the application.


2 commentaires

L'affichage de l'erreur n'est donc pas cohérent, y a-t-il un modèle à quelles erreurs sont montrées et que ne sont pas?


Comment servez-vous le site? Vous dites ci-dessous nginx, mais est-ce Fastcgi?


4 Réponses :


1
votes

C'est ce que Débogou = TRUE est pour: montrer la traçabilité complète. L'idée est que les utilisateurs réguliers ne veulent pas (vous ne voulez pas non plus qu'ils) voir autre chose qu'un message d'erreur simple.


2 commentaires

Certaines erreurs se produisent en dehors de la manipulation de 500 déboges de débogage, où vous obtenez toujours une erreur brute du serveur Web.


Oui, j'ai aussi remarqué que parfois je reçois des pages d'erreur mod_python plutôt que la page Django.



4
votes

Utilisez-vous Apache?
Il suffit de paraître à l'extérieur de votre production ou d'un environnement de développement dans lequel vous souhaitez voir la traçabilité?

du Réservez sur Security - Messages d'erreur exposés

Les utilisateurs déployés sous Apache et mod_python doivent également s'assurer qu'ils ont PythondeBug sur leurs fichiers Apache Conf; Cela garantira que toutes les erreurs qui se produisent avant que Django ait eu la chance de charger ne seront pas affichées publiquement.

Je suppose que vous voulez que PythondeBug est recommandé pour le développement uniquement.


2 commentaires

J'utilise mod_python avec PythondeBug Off et je peux toujours changer debug = true dans mes paramètres pour résoudre rapidement un problème. Cela me donne toujours la page de débogage de Django à la place de la page d'erreur de serveur interne de Apache.


Désolé Jack, n'a pas utilisé Nginx, alors peut-être que quelqu'un avec Nginx pourrait être capable d'aider les problèmes à tirer. Brandon - pourrait-il être un nginx spécifique?



6
votes

Peut-être que vous pouvez utiliser cet extrait, cela vous enregistrera des exceptions dans le journal de Apache:

utils.py : xxx

site_logging.py : xxx

le mettre dans votre paramètres.py : xxx

et dans votre code: xxx


0 commentaires

9
votes

Il suffit de vous connecter au signal Got_Request_Exception et de vous connecter à l'exception: xxx

Ceci enregistre la trace entière. Dans le serveur DEV, il se connecte à la console.


0 commentaires