django - 将应用程序级别的用户名/用户 ID 注入(inject) nginx/Apache 日志

标签 django apache logging nginx

有没有办法将应用程序级别的用户名或 ID(在本例中为 django 用户名或 ID)注入(inject) Apache 或 ngnix 日志?请注意,我不是在询问 HTTP auth 用户名。

最佳答案

我目前正在使用一个简短的自定义中间件将此数据添加到响应 header 中,如下所示:

from django.utils.deprecation import MiddlewareMixin
class RemoteUserMiddleware(MiddlewareMixin):
    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
有了这个,你可以使用 %{X-Remote-User-Name}o and %{X-Remote-User-Id}o 在您的 Apache 配置(或类似的 nginx 配置)中,并将信息直接放入您的日志中。

关于django - 将应用程序级别的用户名/用户 ID 注入(inject) nginx/Apache 日志,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6821029/

相关文章:

python - Django多数据库: Route all writes to multiple databases

linux - 如何编辑 Apache 配置以使 git pull 的更改不会立即反射(reflect)出来?

将数据插入数据库的 PHP 脚本在执行时返回成功,但记录未插入数据库?

java - 如何将 Apache 引向 Vaadin (Java) 项目?

iis - 如何调试 IIS 7 模块?

python - 暂时忽略特定的日志行

django - 如何在 Django 中将 2 个属性一起设置为主键?

python - 努力让 django_comments 与 Django REST Framework 一起工作

django - request.POST.getlist 在 Django 中返回 None 列表?

ruby-on-rails - Rails 自定义标记记录器