/ / logging demande à enregistrer dans les fonctions internes (Django) - django, logging

consignation des informations de demande dans un fichier, dans les fonctions internes (Django) - django, consignation

J'utilise un simple enregistreur pour enregistrer les informations de débogage dansfichier. Mon problème est que je souhaite que chaque ligne du journal soit précédée d'informations de demande (par exemple, utilisateur, URL) et que les fonctions internes activées par la vue n'ont pas accès au paramètre de demande.

Je pensais à

  1. passer la demande à chaque fonction - très mauvais
  2. grimper dans la pile de traçage, rechercher «demande» dans les variables locales - vous ne savez pas comment faire cela ou si le processus sera trop lent (par exemple, en vous connectant jusqu'à environ 100 fois par demande)
  3. entourant la vue avec un "avec"déclaration qui conservera toutes les informations de la demande dans une variable globale (clé = id du thread) - non recommandée comme risque pour la sécurité (http://code.djangoproject.com/wiki/CookBookThreadlocalsAndUser) et nécessite d'indenter tout le code dans la vue

Y a-t-il une solution élégante?

Réponses:

1 pour la réponse № 1

Je pense que vous souhaitez utiliser un filtre qui ajoute des attributs de requête à vos messages de journal. Ce paquet semble adresser ceci: http://pypi.python.org/pypi/django-requestlogging


0 pour la réponse № 2

Ce n'est peut-être pas exactement ce que vous cherchez, mais Django-sentinelle fournit la fonctionnalité que vous décrivez (avec une interface Web agréable également). Cela pourrait être plus facile que d'essayer de lancer votre propre solution.