Kri*_*ass 14
我目前正在使用一个简短的自定义中间件将此数据添加到响应标头,如下所示:
class RemoteUserMiddleware(object):
def process_response(self, request, response):
if request.user.is_authenticated():
response['X-Remote-User-Name'] = request.user.username
response['X-Remote-User-Id'] = request.user.id
return response
Run Code Online (Sandbox Code Playgroud)
有了这个地方,你可以用%{X-Remote-User-Name}o和%{X-Remote-User-Id}o在你的Apache配置(或类似nginx的),并得到的信息直接进入你的日志.
我们做了类似的事情,只是我们告诉 Apache 存储 Django sessionid cookie。
LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-agent}i\" %{sessionid}C" withsession
CustomLog logs/example.com-access_log withsession
Run Code Online (Sandbox Code Playgroud)
将 sessionid 映射到用户的过程需要两步,但很容易实现。您可以通过设置一个带有显式 ID 的 cookie,然后使用自定义日志来捕获它来执行类似的操作。
| 归档时间: |
|
| 查看次数: |
1613 次 |
| 最近记录: |