Y a-t-il un moyen d'injecter un nom d'utilisateur ou une carte d'utilisateur (dans ce cas, le nom d'utilisateur ou l'identifiant Django) dans le journal Apache ou Ngnix? Notez que je ne pose pas de questions sur le nom d'utilisateur HTTP Auth. P>
3 Réponses :
Nous faisons quelque chose comme ça, nous disons seulement Apache de stocker le cookie Django SessionID.
LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-agent}i\" %{sessionid}C" withsession CustomLog logs/example.com-access_log withsession
Excellent, je n'étais pas au courant de l'option "C" dans la journalisation, ça va probablement fonctionner.
J'utilise actuellement une courte middleware personnalisée pour ajouter ces données aux en-têtes de réponse, comme ci-dessous: avec ceci en place, vous pouvez simplement utiliser % {x-is-user-nom-nom-nom} o code> et
dans votre configuration Apache (ou similaire pour nginx) et obtenez les informations directement dans vos journaux. P> p> % {x -Remote-user-id} o code>
Si vous avez un cookie pour le nom d'utilisateur, dites "Uname", vous pouvez ajouter% {UNAME} C, comme ceci:
24.xx.xx.xxx user.name - - [09/Sep/2016:19:33:21 -0400] "GET /xxxx HTTP/1.1" 304 - "https://xxx/xxx" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/52.0.2743.116 Safari/537.36"