Django Logger:如何记录用户名

Django Logger:如何记录用户名,django,python-3.x,django-rest-framework,django-middleware,Django,Python 3.x,Django Rest Framework,Django Middleware,我试图在Django项目中实现日志记录(Django 1.11,Python3.6)。我使用默认的django记录器 为了在日志中获取用户名,我使用了。 到目前为止,除了管理员超级用户之外,我没有其他用户 当我在前端尝试GET请求时,会出现一个错误,说明“LogSetupMiddleware”不可调用。 这个错误的原因是什么?我如何使日志工作 如何在日志中获取匿名用户 文件settings.py代码段: INSTALLED_APPS= [ ... 'django_requestl

我试图在Django项目中实现日志记录(
Django 1.11
Python3.6
)。我使用默认的django记录器

为了在日志中获取
用户名
,我使用了。 到目前为止,除了管理员超级用户之外,我没有其他用户

当我在前端尝试GET请求时,会出现一个错误,说明“LogSetupMiddleware”不可调用。

  • 这个错误的原因是什么?我如何使日志工作

  • 如何在日志中获取
    匿名用户

  • 文件settings.py代码段:

    INSTALLED_APPS= [
        ...
        'django_requestlogging',
    ]
    
    MIDDLEWARE = [
        ...
        'django_requestlogging.middleware.LogSetupMiddleware',
        ...
    ]
    
    LOGGING = {
        'version': 1,
        'formatters': {
            'standard' : {
                'format': '%(asctime)s %(username)s %(request_method)s',
            }, 
        },
    }
    
    正如我所看到的,中间件类实际上是不可调用的。要修复它,您必须像这样重写该类:

    some/middlware/path.py

    并将settings.py中的中间件路径替换为新路径:

    some.middleware.path.LogSetupMiddleware

    from django.utils.deprecation import MiddlewareMixin
    from django_requestlogging.middleware import LogSetupMiddleware as Original
    
    class LogSetupMiddleware(MiddlewareMixin, Original):
        pass