/ / rejestrowanie informacji o żądaniach do pliku, w wewnętrznych funkcjach (Django) - django, logowanie

rejestrowanie informacji o żądaniu do pliku, w funkcjach wewnętrznych (Django) - django, logowanie

Używam zwykłego rejestratora do zapisywania informacji debugowaniaplik. Mój problem polega na tym, że chcę, aby każda linia w logu miała prefiks z informacjami o żądaniu (np. Użytkownik, adres URL), a wewnętrzne funkcje aktywowane przez widok nie mają dostępu do parametru żądania.

Myślałem o

  1. przekazywanie wniosku do każdej funkcji - bardzo źle
  2. wspinanie się po stosie traceback, wyszukiwanie "żądań" w zmiennych lokalnych - nie wiem, jak to zrobić lub jeśli będzie za wolno (powiedz, logując się do ~ 100 razy na żądanie)
  3. otaczanie funkcji widoku za pomocą "z"oświadczenie, które zachowa wszystkie informacje o żądaniu w zmiennej globalnej (key = identyfikator wątku) - niezalecane jako zagrożenie bezpieczeństwa (http://code.djangoproject.com/wiki/CookBookThreadlocalsAndUser) i wymaga wcięcia całego kodu w widoku

Czy istnieje eleganckie rozwiązanie?

Odpowiedzi:

1 dla odpowiedzi № 1

Uważam, że chcesz użyć filtra, który dodaje atrybuty żądań do wiadomości dziennika. Ten pakiet wydaje się rozwiązać ten problem: http://pypi.python.org/pypi/django-requestlogging


0 dla odpowiedzi nr 2

To może nie być dokładnie to, czego szukasz, ale django-sentry zapewnia opisywaną funkcjonalność (z ładnym interfejsem sieciowym). To może być łatwiejsze niż próba wprowadzenia własnego rozwiązania.