Django Logger:如何记录用户名

时间:2017-11-27 12:32:26

标签: django python-3.x django-rest-framework django-middleware

我正在尝试在我的Django项目中实现日志记录(django 1.11Python 3.6)。我使用默认的django记录器。

要在日志中获取username,我使用了django-requestlogging 1.0.1。 截至目前,我没有管理员超级用户以外的任何用户。

当我在前端尝试GET请求时,会出现'LogSetupMiddleware' is not callable.

错误
  1. 出现此错误的原因是什么?如何进行日志记录工作?

  2. 如何在日志中获取AnonymousUser

  3. 文件 settings.py 代码段

    INSTALLED_APPS= [
        ...
        'django_requestlogging',
    ]
    
    MIDDLEWARE = [
        ...
        'django_requestlogging.middleware.LogSetupMiddleware',
        ...
    ]
    
    LOGGING = {
        'version': 1,
        'formatters': {
            'standard' : {
                'format': '%(asctime)s %(username)s %(request_method)s',
            }, 
        },
    }
    

1 个答案:

答案 0 :(得分:1)

正如我所见,here中间件类实际上是不可调用的。要修复它,您必须像这样重写该类:

some / middlware / path.py

from django.utils.deprecation import MiddlewareMixin
from django_requestlogging.middleware import LogSetupMiddleware as Original

class LogSetupMiddleware(MiddlewareMixin, Original):
    pass

并用新的设置替换settings.py中的中间件路径:

some.middleware.path.LogSetupMiddleware